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.