Previous: , Up: expander lexenv imported   [Index]


15.3.5.11 Example library

We can use the following example library to toy with imported syntactic bindings:

(library (demo)
  (export var macro var-macro macro-id
          etv color <color> da-module fluid synonym)
  (import (vicare))

  (define var "ciao")

  (define-syntax macro
    (lambda (stx) "hello"))

  (define-syntax macro-id
    (identifier-syntax "hello"))

  (define-syntax var-macro
    (make-variable-transformer (lambda (stx) "ohayo")))

  (define-syntax etv
    (make-expand-time-value 123))

  (define-struct color
    (red green blue))

  (define-record-type <color>
    (fields red green blue))

  (module da-module
      (inner)
    (define inner 123))

  (define-fluid-syntax fluid
    (lambda (stx) "da fluid"))

  (define-syntax synonym
    (make-synonym-transformer #'var))

  #| end of library |# )