ref: 352f99764dbd0228a2d8f62958596b4ab102268f
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 * Add reductions for underapplied K2,K3,K4 * Move some Typeable instances from the class file to ST&co (makes it leaner) Bugs: * Missing IO in ccall shows wrong location * Check for escaping skolemized variables * Type checking Data.Data * MonadFix (->) * Install a targets.conf? * let...in... doesn't parse correctly in a do * let needs {} in a do with {} * missing import in Text.Read.Internal gmhs: expandDict: Data.Floating.Floating * export list in -boot doesn't work * Cannot derive Show for 'newtype Alt f a = Alt (f a)' * Fundep bug mtl:Control/Monad/RWS/Class.hs * Cannot parse (== -1) * f . g :: T parses wrong