Previous eliminator for inductive types was too complex. It performs
automagic currying, making it difficult to type check and reduce.
New version must be fully applied, and magic is left to the surface language.
This version is now working and all core tests are passing, but
documentation, etc needs to be changed. Also, there is dead code that
should be removed.
* Moved cur.rkt to main.rkt, which fixes some reader issues
* Added sweet-expression tests
* Added notes about sweet-expressions to README
* Added sweet-exp as dependency to tests
* Unified the surface syntax. There are no longer distinctions between
single-arity and multi-arity function/function types.
* Removed case and case*, in favor of match, a single advanced pattern
matching construct.
* Updated all libraries, tests and documentation to use these new syntax.
* Some work to provide improved error messages in surface syntax.
Created split packages: cur, cur-lib, cur-test, cur-doc, similar to
other Racket packages, e.g., redex.
* Moved tests out of core and into cur-test
* Moved docs into cur-doc
* Moved cur implementation and libraries into cur-lib
* Added cur meta-pacakge that installs all of the above