ast:
- `let Pat (= Expr (else Expr)?)?`,
- `fn (args) -> Ty`, coagulating `do`, `if/while` formatting fixes
parser:
- int cleanup,
- fn rety parsing,
- experimental `for` desugar,
- experimental semicolon elision (TODO: it sucks),
- let-else parsing
- `do` coagulation impl (still not 100% there)
TODO:
- Fix `do` coagulation
- codify `do` elision rules
- `for` needs lib support
- this is fine because we have no codegen yet
- Ty matching in macro_matcher
- Or rip out macro_matcher? Who knows what the future holds.