Commit graph

41 commits

Author SHA1 Message Date
sebastianselander
2566c53f58 mono adapt 2023-03-24 19:01:33 +01:00
sebastianselander
b08ae7aef1 rewrote unification for data type and variable.
could definitely be wrong. have to double check
2023-03-24 18:49:24 +01:00
sebastianselander
56ccd793ac more error messages and better unification 2023-03-24 18:21:07 +01:00
sebastianselander
41fc863658 added PEnum 2023-03-24 17:39:34 +01:00
sebastianselander
3c2cb1a713 new good version works 2023-03-24 17:06:40 +01:00
sebastianselander
ce3971cf75 renamed stuff 2023-03-24 12:24:08 +01:00
sebastianselander
32f8a3e8a9 duplicate signatures disallowed 2023-03-24 11:27:19 +01:00
sebastianselander
aa73f147f0 Remade lets with bind & improvements 2023-03-24 11:21:51 +01:00
sebastianselander
936cb1301f new grammar and adapted renamer 2023-03-22 12:45:51 +01:00
sebastianselander
88a4a934b8 added more manual tests 2023-03-22 10:32:22 +01:00
sebastian
57fe8cd0a6 Fixed larger bug
where pattern matching on `Just a` with type `Maybe b` could be used for
 any type.
2023-03-21 22:02:28 +01:00
sebastianselander
509de4415e progress on fixing bugs 2023-03-21 17:09:03 +01:00
sebastian
4c015a4aac initial pattern matching implementation. should be somewhat correct 2023-03-21 14:33:18 +01:00
sebastianselander
9cd2cdb511 continued work on pattern matching v2 2023-03-20 17:40:09 +01:00
sebastianselander
c3ea343d00 unified top level type with expression type 2023-03-10 16:54:29 +01:00
sebastian
62724964d7 fixed Maybe ('a -> 'a) bug. Pattern matching still wonky, will have to redo 2023-03-08 15:22:42 +01:00
sebastianselander
9c2f52f8bb fixed bug where bound variable didn't exist in case 2023-03-06 11:27:17 +01:00
sebastianselander
778fec3dc4 Implemented potential fix for one of the bugs 2023-03-05 14:34:39 +01:00
sebastianselander
fe63fa6215 Improved error message and created document for known bugs. 2023-03-05 13:24:56 +01:00
sebastianselander
fecb71bc07 Found a bug. 2023-03-03 18:17:51 +01:00
sebastianselander
03d7080396 pattern matching works? have to test more 2023-03-03 11:46:54 +01:00
sebastianselander
2401b6437b continued work pattern matching 2023-03-02 16:05:43 +01:00
sebastianselander
05313652f9 unit tests, started on pattern matching 2023-02-28 17:15:48 +01:00
sebastianselander
bbf6e159c7 Type inference/checking on ADTs mostly complete(?). Still have to test 2023-02-27 17:22:42 +01:00
sebastianselander
2f45f39435 Incorporated most of main, as well as started on quickcheck 2023-02-27 11:12:05 +01:00
sebastianselander
5daa5573f2 Added more comments to the code 2023-02-22 15:24:38 +01:00
sebastianselander
420fb107f0 Commented code and fixed some bugs I think. Still not complete
id : Int -> Int
id x = x
does not type check
2023-02-19 15:25:49 +01:00
sebastianselander
db932048ba Tried fixing bug. Failed. 2023-02-19 02:10:57 +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
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
200a9e57ed Fixed EId, more work on other expressions needed 2023-02-14 10:12: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
f4f1786be3 Revert "Merge branch 'typechecking' into codegen-martin-3"
This reverts commit e000e5159f, reversing
changes made to 3ac8377fa0.
2023-02-10 10:46:09 +01:00
sebastianselander
b6b2dfa25f Some work on a typechecker 2023-01-23 17:17:06 +01:00
Martin Fredin
64ee4dc432 Implement basic interpreted language 2023-01-20 14:12:04 +01:00