Resolve types in lambda arguments, recursively substitute
[scheme.git] / tests.scm
diff --git a/tests.scm b/tests.scm
new file mode 100644 (file)
index 0000000..39ca240
--- /dev/null
+++ b/tests.scm
@@ -0,0 +1,10 @@
+(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))