ref: 60e96185f08ab8f36698c16c41633bc3a4295b77
dir: /TODO/
* Have compile return a Stats record of timing etc * In interactive mode, make the runtime system catch ^C and stop execution * Type checker improvements: - allow generalization for local bindings - use subsumption (like if) in the arms of alternatives - instead of skolemization, use regular variables, making sure they are unique * Redo type synonym expansion - Do expansion during unification * Redo handling of synonym and instance tables. - These tables can persist during the compilation and only grow * Implement two level tables for instances even in the tricky cases * Removing [] from prim table * Faster compression * Use pointer reversal during marking, will be slower * Fix bug uncovered by Data.Type.Equality * mkQIdent * Get rid of evalstring() - do everything in Haskell - make a low level primError that takes a utf8 string * Better pretty print of Expr * Allow top level pattern bindings - Merge EBind and EDef * Implement pattern synonyms * Implement qualified constraints * Use capi, add value and field modifiers * Ad hoc fix for f.g: check if g is a field * Divide lib into different packages * Sync lib with GHC base * Handle closing of Handle properly (don't crash on multiple close) - implement ForeignPtr with finalizers for this. * Use finalizers for alloca? * Better naming of internal identifiers * Add mask&co to exceptions * Make deriving refer to identifiers that don't need to be in scope Bugs: * Missing IO in ccall show wrong location * Check for escaping skolemized variables * Type checking Data.Data * Class export with list does nt export $dflt