lilo is a series of simple, lambda calculi implemented in Haskell.
I'm currently experimenting with defining the syntax expressions of the language using the techniques described in Data types à la carte.
> eval $ parseExpr "(\\x -> x) 1"
I'm tracking my progress in a series of small, informal posts:
- A lambda calculus is born
- Implementing pairs
- Sum types
- Hindley-Milner type inference
- Syntax à la carte
- A lot of the ideas and code here are inspired by and directly from Stephen Diehl.
- Church booleans
- Fixed point combinators