shithub: MicroHs

ref: 3e82e2c10aa33609ef7badfed65bf034a2079633
dir: /TODO/

View raw version
* Have compile return a Stats record of timing etc
* 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
* Try Oleg's abstraction algorithm
  - Seems to be slower
* 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
  - get rid of noMatch and noDefault primitives
* Implement lazy matching
* Implement strict matching
* Change default 'default'?
* Implement TAB completion
* Better pretty print of Expr
* Move extra stuff from Data.List into its own module
* Allow top level pattern bindings
  - Merge EBind and EDef
* Implement pattern synonyms
* Implement qualified constraints
* Export the right list functions
* Improve defaulting (only default to Integer/Double if Num)
* 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

Bugs:
* Missing IO in ccall show wrong location
* Limited class imports hide default methods
* Check for escaping skolemized variables