On my i686-pc-linux-gnu running: $ guile --version guile (GNU Guile) 2.1.0.1329-d7cb7
built from the head of the "master" branch, this program: #!r6rs (import (rnrs)) (define (alpha) (define-syntax define-special (syntax-rules () ((_ ?who ?val) (define ?who ?val)))) (define-special beta #t) #f) (alpha) should succeed, but instead it fails with: ;;; compiling /home/marco/var/tmp/proof.sps ;;; WARNING: compilation of /home/marco/var/tmp/proof.sps failed: ;;; ERROR: Syntax error: ;;; /home/marco/var/tmp/proof.sps:12:2: definition in ;;; expression context, where definitions a re not allowed, in form (define beta #t) ice-9/boot-9.scm:718:27: In procedure map: ice-9/boot-9.scm:718:27: Syntax error: /home/marco/var/tmp/proof.sps:12:2: definition in expression context, where definitions are not allowed, in form (define beta #t) -- Marco Maggi