Hello! The implementation of VM-supported multiple values doesn't play well with values-as-structs as in `values.c':
scheme@(guile-user)> ,o interp #t scheme@(guile-user)> (use-modules (srfi srfi-11)) scheme@(guile-user)> (define v (values 0 1 2 3)) scheme@(guile-user)> (let-values (((a b c d) v)) (list a b c d)) $1 = (0 1 2 3) scheme@(guile-user)> ,o interp #f scheme@(guile-user)> (define v (values 0 1 2 3)) scheme@(guile-user)> (let-values (((a b c d) v)) (list a b c d)) ERROR: Wrong number of arguments to #<program b7144b70 at <unknown port>:8:0 (let-values-var let-values-var let-values-var let-values-var)> ... whereas: scheme@(guile-user)> (let-values (((a b c d) (values 0 1 2 3))) (list a b c d)) $6 = (0 1 2 3) works. OTOH, I suspect that the effect of storing multiple values in a single variable is not specified anyway. (FWIW, Bigloo discards all values but the first and Ikarus throws an error.) Thanks, Ludo'.