A Lisp Parser in Idris
Libra is a training exercise. It's not intended to be a production Lisp runtime.
Through it, my aim is to learn more about dependent-types, compilers, and languages in general.
I'd like it to be able to:
- Parse Lisp 1.5 syntax
- Perform useful syntax checking
- Evaluate a Lisp program
- Expose itself as a CLI tool
If I achieve those goals, I'd like it to (in no particular order):
- Perform type-checking a-la simply-typed Lambda Calculus
- Perform type-checking with dependent-types
- Compile the program to Javascript
- Compile the program with optimizations
And I'm aware that it will diverge from the reference material at some point on these last items, and I'm okay with that.
As a language reference I'm using a copy of the Lisp 1.5 Programmer's Manual.