diff --git a/module/language/tree-il/peval.scm b/module/language/tree-il/peval.scm index bf96179..25dded4 100644 --- a/module/language/tree-il/peval.scm +++ b/module/language/tree-il/peval.scm @@ -1155,6 +1155,25 @@ top-level bindings from ENV and return the resulting expression." (simplify-conditional (make-conditional src c (for-tail subsequent) (for-tail alternate)))))) + + (($ src + ($ _ '@call-with-values) + (($ _ _ + ($ _ + () #f #f #f () () + ($ _ ($ _ 'values) + (produced ...)) + #f)) + ($ _ _ + (and consumer + ($ _ + (? (negate (compose (cute = <> (length produced)) + length))) + #f #f #f () gensyms body #f))))) + ;; Producer is (values args ...) but consumer expects a different + ;; number of values, which is an error. + exp) + (($ src ($ _ '@call-with-values) (producer