Neil Brown
f10cb7d525
Moved the TypeExp type out to its own module, UnifyType
2008-05-17 14:21:57 +00:00
Neil Brown
f8b7e8f8cb
Added unifying-related items to CompState, and changed all the uses of ST to IO in the TypeUnification module
...
As part of this patch I also had to provide a Data instance for TypeExp (to allow CompState to still be an instance of Data). Using IORefs is easier than STRef RealWorld, and puts everything in terms of IO (which is already in PassM) rather than ST (which would require more lifting).
2008-05-17 12:50:52 +00:00
Neil Brown
875cf4b40a
Provided slightly better error messages from the type unification module
2008-05-14 12:18:58 +00:00
Neil Brown
e3bf321f33
Made the key type in the type unification generic (as long as it provides Ord and Show)
2008-05-14 12:06:11 +00:00
Neil Brown
e09fb2b9ec
Added support for numeric literals in the type inference algorithm
2008-05-14 12:01:32 +00:00
Neil Brown
9f1d65f4a0
Added more tests for type unification, fixed some bugs and added cleaner error handling
2008-05-14 09:52:16 +00:00
Neil Brown
e3fa3df623
Added a module for doing type unification, and some very basic tests for it
2008-05-13 23:25:42 +00:00