==== Notes ====
-The checker should work on most programs. Bugs I'm aware of:
-1. There's some business I don't quite understand involving
- coercions and subkinding (for details, see:
- http://www.haskell.org/pipermail/cvs-ghc/2008-April/041949.html)
- This shows up when typechecking a few of the library modules.
+The checker should work on most programs. Bugs (and infelicities)
+I'm aware of:
-2. There's some weirdness involving funny character literals. This can
+1. There's some weirdness involving funny character literals. This can
be fixed by writing a new lexer for chars rather than using Parsec's
built-in charLiteral lexer. But I haven't done that.
-3. When typechecking the ghc-prim:GHC.PrimopWrappers library module,
- some declarations seem to have the wrong type signature (due to
- confusion between (forall (t::*) ...) and (forall (t::?) ...).)
- This is because the ? kind is not expressible in Haskell.
+2. The test driver attempts to find module dependencies automatically,
+ but it's slow. You can turn it off with the "-n" flag to the driver,
+ and specify all dependencies on the command line (you have to include
+ standard library dependencies too.)
+ * It would help to cache dependency info for standard libraries
+ in a file, or something, but that's future work.
+
+3. To avoid implementing some of the I/O primitives and foreign calls,
+ I use a gross hack involving replacing certain standard library
+ modules with simplified versions (found under lib/) that depend on
+ fake "primops" that the Core interpreter implements. This makes it
+ difficult (if not impossible) to load optimized versions of standard
+ libraries right now. Fixing this is future work too.
Typechecking all the GHC libraries eats about a gig of heap and takes a
long time. I blame Parsec. (Someone who was bored, or understood happy