The following little package: <http://github.com/downloads/marcomaggi/nausicaa/synrec6-1.0.1.tar.gz>
works with Larceny, Mosh, Petite Chez, Racket, Vicare and Ypsilon; with Guile 2.0 it fails with: GUILE_LOAD_PATH=.: guile -l guile-r6rs-setup.scm --auto-compile -s ./test-flatt-syntactic.sps; GUILE_LOAD_PATH=.: guile -l guile-r6rs-setup.scm --auto-compile -s ./test-synrec6.sps; ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /home/marco/src/devel/scheme/icaro/src/standalone/synrec6/./test-flatt-syntactic.sps ;;; WARNING: compilation of /home/marco/src/devel/scheme/icaro/src/standalone/synrec6/./test-flatt-syntactic.sps failed: ;;; key r6rs:exception, throw_args (#<r6rs:record:&raise-object-wrapper>) Backtrace: In module/ice-9/boot-9.scm: 170: 13 [catch #t #<catch-closure 822a5d0> ...] In unknown file: ?: 12 [catch-closure] In module/ice-9/boot-9.scm: 62: 11 [call-with-prompt prompt0 ...] In module/ice-9/eval.scm: 389: 10 [eval # #] In module/ice-9/boot-9.scm: 1917: 9 [save-module-excursion #<procedure 80a2320 at module/ice-9/boot-9.scm:3341:3 ()>] 3348: 8 [#<procedure 80a2320 at module/ice-9/boot-9.scm:3341:3 ()>] 1189: 7 [%start-stack load-stack ...] 1194: 6 [#<procedure 8723ac8 ()>] In unknown file: ?: 5 [primitive-load "/home/marco/src/devel/scheme/icaro/src/standalone/synrec6/./test-flatt-syntactic.sps"] In module/ice-9/eval.scm: 458: 4 [#<procedure 813b680 at module/ice-9/eval.scm:452:4 (exp)> #] In module/ice-9/psyntax.scm: 1066: 3 [chi-top (six.define-record-type # # #) () (#) ...] 1007: 2 [syntax-type (six.define-record-type # # #) () (#) ...] 1303: 1 [chi-macro #<procedure 8704ab0 (stx)> (six.define-record-type # # #) () ...] In unknown file: ?: 0 [#<procedure 8704ab0 (stx)> #(syntax-object # # #)] ERROR: In procedure #<procedure 8704ab0 (stx)>: ERROR: ERROR: R6RS exception: 1. &who: define-record-type 2. &message: "invalid clause in record type definition" 3. &syntax: form: (six.define-record-type (point make-point point?) (six.fields (six.immutable x point-x) (six.mutable y point-y set-point-y!)) (six.nongenerative point-4893d957-e00b-11d9-817f-00111175eb9e)) subform: (six.fields (six.immutable x point-x) (six.mutable y point-y set-point-y!)) Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. -- Marco Maggi