(module foo (bar) (import scheme (chicken base) matchable) (define (foo x y z) (print x y z) z) (define bar (lambda (name parent init resize paint) (foo name parent (match-lambda* ((0) (init)) ((1 w h) (resize w h)) ) ) ) ) ) (import foo) ((bar 1 2 (lambda () (print "init " 3)) (lambda (x y) (print "resize " x y)) 5) 0) ((bar 1 2 (lambda () (print "init " 3)) (lambda (x y) (print "resize " x y)) 5) 1 6 7)