1;;; use-square-functor.scm
2
3(import square-functor)
4
5(module num (*) (import scheme))
6(module lst (*) (import (except scheme *)) (define (* x y) (list x y)))
7
8(module sf1 = (square-functor num))
9(module sf2 = (square-functor lst))
10
11(import (prefix sf1 sf1:))
12(import (prefix sf2 sf2:))
13
14(assert (= 9 (sf1:square 3)))
15(assert (equal? '(3 3) (sf2:square 3)))
16