James T. Martin
25658f370a
Complexity was getting out of hand. Beginning a rewrite. Added tests.
2019-12-11 18:29:28 -08:00
James T. Martin
807a0cb1ee
Massive refactoring. This project is no longer "just an exercise".
...
* Allows for multiple representations
* Evaluation strategies
* Type systems.
* No longer just the untyped lambda calculus.
* No longer "just an experiment".
2019-08-29 20:46:42 -07:00
James T. Martin
8ab723b803
Made substitutions an explicit part of syntax.
2019-08-27 17:44:23 -07:00
James T. Martin
7cb27e8e9a
Modified to use dependent types and 'Drop' instead of a var index.
2019-08-23 18:38:57 -07:00
James T. Martin
ee7794073c
Converted to use reverse de bruijn representation.
2019-08-21 21:40:04 -07:00
James T. Martin
ec7ad2236b
Added `let`, removed `Nil`, replaced `subst` with `Subst` exprs.
2019-08-21 15:18:25 -07:00
James T. Martin
5f87100363
Added nullary applications and generalized eta reductions.
2019-08-19 15:08:45 -07:00
James T. Martin
2e95783c3a
Simplified the code, at the cost of removing type-level invariants.
2019-08-17 11:49:14 -07:00
James T. Martin
9cda0ef9c2
Cleaned up the code, removed dep on recursion-schemes.
2019-08-17 00:01:23 -07:00
James T. Martin
43e4a77cdc
Parse directly to Expr without any intermediate Ast type.
2019-08-16 22:34:09 -07:00
James T. Martin
d74f17007a
Made variables indexed by `Fin n` instead of Int.
2019-08-16 18:37:55 -07:00
James T. Martin
70b3b7e051
I fixed it! Also deleted some unused code, and refactored a little.
2019-08-15 13:11:17 -07:00
James T. Martin
fd98d499fe
Initial commit. Some terms are still not evaluated correctly.
2019-08-15 10:42:24 -07:00