Mv?
Return one or more values
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.