--- /dev/null
+(load "typecheck.scm")
+
+(define (test actual expected)
+ (when (not (equal? actual expected))
+ (error #f
+ (format "test failed:\nexpected: ~a\nactual: ~a"
+ expected actual))))
+
+(test (typecheck '(lambda (x) (+ ((lambda (y) (x y 3)) 5) 2)))
+ '(abs (abs int (abs int int)) int))