shithub: MicroHs

ref: fd5e674fa65ff997cf004a5c4a0bf17fbff68340
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
  - allow existential quantification
    # check for escaping skolemized variables
* 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
* Handle tupled dictionaries better for recursive calls
* Removing [] from prim table
* Faster compression
* Use pointer reversal during marking, will be slower
* Fix bug uncovered by Data.Type.Equality
* mkQIdent
* Fix bug, line 629, TypeCheck.hs
* 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
* Add some package concept with a saved cache
* Export the right list functions
* Improve defaulting

* Missing IO in ccall show wrong location