Hello, I am trying to use receive in a phase, but for some reason it fails. I modified the hello-world example from the cookbook to demonstrate: (use-modules (gnu) (guix build-system gnu) (guix download) (guix licenses) (guix packages)) (package (name "hello") (version "2.10") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/hello/hello-" version ".tar.gz")) (sha256 (base32 "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i")))) (build-system gnu-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (add-after 'unpack 'xxx (λ _ (use-modules (ice-9 receive)) (receive (a b) (values 1 2) (pk a) (pk b))))))) (synopsis "Hello, GNU world: An example GNU package") (description "GNU Hello prints the message \"Hello, world!\" and then exits. It serves as an example of standard GNU coding practices. As such, it supports command-line arguments, multiple languages, and so on.") (home-page "https://www.gnu.org/software/hello/") (license gpl3+)) Now when I try to build this package, I get this error: starting phase `xxx' error: in phase 'xxx': uncaught exception: unbound-variable #f "Unbound variable: ~S" (a) #f phase `xxx' failed after 0.0 seconds Backtrace: 11 (primitive-load "/gnu/store/x57gb3dj0cvvpzmy9r2nh32fcnn…") In guix/build/gnu-build-system.scm: 908:2 10 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #) In ice-9/boot-9.scm: 1752:10 9 (with-exception-handler _ _ #:unwind? _ # _) In srfi/srfi-1.scm: 634:9 8 (for-each # …) In ice-9/boot-9.scm: 1752:10 7 (with-exception-handler _ _ #:unwind? _ # _) In guix/build/gnu-build-system.scm: 929:23 6 (_) In ice-9/eval.scm: 173:39 5 (_ #(#(#) (# # …))) 182:19 4 (proc #(#(#) (# …))) 142:16 3 (compile-top-call # …) In unknown file: 2 (%resolve-variable (7 . a) #) In ice-9/boot-9.scm: 1685:16 1 (raise-exception _ #:continuable? _) 1685:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1685:16: In procedure raise-exception: Unbound variable: a Would anyone have any idea what is wrong and how can I correctly call function returning multiple values in a phase (call-with-values is bit... unwieldy)? Thank you, Tomas Volf -- There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors.