ref: 6b703e40af6cf5c5a855a4e217e91c9fd252fa4b thon/parse/thon.grm -rw-r--r-- 2.7 KiB
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