(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)