(bind-func my-test19
(lambda ()
(let ((t1 (my-test18))
(t2 (my-test18)))
;; identity of 5
(printf "%lld:%lld\n" (t1 5) (t2 5))
(t1.f:[i64,i64]* (lambda (x:i64) (* x x)))
;; square of 5
(printf "%lld:%lld\n" (t1 5) (t2 5))
;; cube of 5
(t2.f:[i64,i64]* (lambda (y:i64) (* y y y)))
(printf "%lld:%lld\n" (t1 5) (t2 5)))))