ref: aad90fff269a83e7f6b6d3b34a9ed4fd0cea5681 thon/parse d---------
Lower Type.Plus precedence; parse `data eq` tyrec
Give `use` a type variable to bind in the client's scope
Add recursive func syntax `fun f : typ = ... in ...`
Add general recursion (though recursive types already gave us that?)
Unify rec syntax with case and ifz
Add ifz ... then ... else
Give type ctors ALL, SOME, and TYPEREC varnames

Still hardcoding type name `t` for impls
Poly declares typ var bound; more threading, some hardcoding still
Hardcode typename t for TypAbs
Deprecate lambdas without arg names
Hardcode typename t for All
Give TypVar a name param but hardcode to t
Add `let ... in ...` syntax
natlist isempty and parse unfold
Give use a pkg variable name
Give case left and right cases variable name
Give previous case of Rec a variable name
Give all variables names (though not all binding sites declare names yet)
Give Lam an argName