(define (loader-printer s) (print "Hello, " s)) (define-syntax include-with-prelude (syntax-rules () ((include-with-prelude path) (lambda (#!key printer) (include-relative path))))) ;(define loaded (include-with-prelude "loaded.scm")) ; doesn't work (define loaded (lambda (#!key printer) (include-relative "loaded.scm"))) (loaded printer: loader-printer)