bar))
'(abs a a))
+(test-types (typecheck '(let ([foo 3]
+ [bar (+ foo baz)]
+ [baz (- bar 1)])
+ bar))
+ 'int)
+
+(test-types (typecheck '(let ([foo 3]
+ [bar (baz foo)]
+ [baz (lambda (x) x)])
+ baz))
+ '(abs a a))
+
+(test-types (typecheck '(let ([foo 3]
+ [bar (baz foo)]
+ [baz (lambda (x) x)])
+ bar))
+ 'int)
+
(test-prog '(+ 1 2) 3)
(test-prog '((lambda (x) ((lambda (y) (+ x y)) 42)) 100) 142)