Add closures and fix lets in monomorphizer

This commit is contained in:
Martin Fredin 2023-05-06 22:49:08 +02:00
parent 677a200a15
commit 72e599d5de
26 changed files with 1440 additions and 692 deletions

View file

@ -0,0 +1,15 @@
data List a where
Nil : List a
Cons : a -> List a -> List a
foldr : (a -> b -> b) -> b -> List a -> b
foldr f y xs = case xs of
Nil => y
Cons x xs => f x (foldr f y xs)
main = let z = 2 in foldr (\x.\y. x + y + z) 0 (Cons 1000 (Cons 100 Nil))