Commit graph

21 commits

Author SHA1 Message Date
sebastianselander
2f45f39435 Incorporated most of main, as well as started on quickcheck 2023-02-27 11:12:05 +01:00
sebastianselander
06e65de235 started on a test suite 2023-02-23 11:54:35 +01:00
sebastianselander
8065576c31 Let has a bug, otherwise probably(?) done 2023-02-20 20:38:36 +01:00
sebastianselander
8b5cd3cf9a Remade the algorithm myself. Still some bugs. 2023-02-18 23:08:27 +01:00
sebastianselander
f188cffb8d Unification part works (probably). Have a hard time understanding it. 2023-02-17 18:42:50 +01:00
sebastianselander
f2e8a02255 Removed adhoc tests 2023-02-17 12:01:22 +01:00
sebastianselander
eafe0fea0b Rewrote using unification-fd. Heavily inspired (aka copied) from:
https://byorgey.wordpress.com/2021/09/08/implementing-hindley-milner-with-the-unification-fd-library/
2023-02-16 16:37:36 +01:00
sebastianselander
f1b77a7efa Refactored. Cleaner version, ala Martin version 2023-02-15 19:52:52 +01:00
sebastianselander
b03df17e34 Minor changes. Added a comment 2023-02-15 18:10:28 +01:00
sebastianselander
7619e36c60 Inference works better now. Still work to do. Should use proper library 2023-02-15 17:40:18 +01:00
sebastianselander
5d247057f5 Minor rewrite of tc. Some bugs still left 2023-02-14 22:03:56 +01:00
sebastianselander
6218efac20 Renamer done.
It renames bound variables to numbers, converts let to lambda, and
removes all variables from binds
2023-02-14 16:44:38 +01:00
sebastianselander
c10d7703ad Progression on type checker ;) 2023-02-13 19:03:06 +01:00
sebastianselander
73dc2e4b6a Inference on most expressions. HM based.
Still have to figure out how to infer type of lambda variables, as well
as how function application on polymorphic should work
2023-02-13 12:17:49 +01:00
sebastianselander
a1e9624d5e TTGing the lambda lifter 2023-02-10 12:09:08 +01:00
Martin Fredin
59fb773bc1 Some clean up and documenting 2023-02-09 20:24:25 +01:00
Martin Fredin
ce31e4d490 Fix first unnecessary supercombinator 2023-02-09 17:53:39 +01:00
Martin Fredin
7a2404cf74 Finish Lambda Lifter 2023-02-09 06:19:58 +01:00
Martin Fredin
1f47288fcf Implement lambda lifting passes: freeVars, abstract, and rename 2023-02-09 05:19:51 +01:00
Martin Fredin
64ee4dc432 Implement basic interpreted language 2023-01-20 14:12:04 +01:00
Martin Fredin
7caadcbeb9 Use src instead of app 2023-01-17 15:34:32 +01:00
Renamed from app/Main.hs (Browse further)