#!/usr/bin/env sh
# -*- wisp -*-
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples property) main)' -s "$0" "$@"
; !#

define-module : examples property
              . #:export : main

; FIXME: this does not work when called from guile, but it works when
; first translating it to scheme and then calling the scheme file.

define y 5
define-syntax z
  make-variable-transformer
   lambda : x
     syntax-case x : set!
       : set! var val
         quasisyntax : set! y : + 1 val
       : var arg ...
         quasisyntax : y arg ...
       var : identifier? #'var
         quasisyntax y


define : main args
         write args
         newline
         write z
         newline
         set! z 5
         write z
         newline