MV_qm_.html -- ACL2 Version 6.3

### MV?

return one or more values

    Major Section:  ACL2-BUILT-INS

`Mv?` is designed to work with `mv?-let`, generalizing how `mv` works with `mv-let` by allowing the binding of a single variable. For example, the following form is legal.

    (mv?-let (y)
             (mv? (f x))
             (declare (type integer y))
             (g x y z))

The expression above is equivalent to the following expression, because `(mv? form)` expands to `form` for any expression, `form`.

    (let ((y (f x)))
      (declare (type integer y))
      (g x y z))

Logically, `(mv? x)` is the same as `x`, while `(mv? v1 v2 ...)` is the same as `(list v1 v2 ...)`. Also see mv and see mv?-let.