## TODO - [x] there is some zero argument application in generated code - [x] get equality.newt to work - [x] broken again because I added J, probably need to constrain scrutinee to value - [x] inline metas. Maybe zonk after TC/elab - [x] implicit patterns - [ ] pair syntax (should this be a comma operator) - [ ] list syntax - [ ] operators - [ ] import - [ ] add {{ }} and solving autos (or maybe just `auto` keyword) - considering various solutions. Perhaps marking the data type as solvable, if we had types on metas. - keep as implicit and mark auto, behavior overlaps a lot with implicit - but we might want to solve right away when creating the implicit - later we might need postpone - [ ] do blocks - [ ] some solution for `+` (classes? ambiguity?) - [ ] show compiler failure in the editor (exit code != 0) - [ ] write js files into `out` directory - [ ] detect extra clauses in case statements - [ ] add test framework - [ ] decide what to do for erasure - [ ] type at point in vscode - [ ] repl - [ ] LSP - [x] don't match forced constructors at runtime - I think we got this by not switching for single cases - [ ] magic nat (codegen as number with appropriate pattern matching) - [ ] magic tuple? (codegen as array) - [ ] magic newtype? (drop in codegen)