TODO.md updates
This commit is contained in:
14
TODO.md
14
TODO.md
@@ -202,8 +202,9 @@
|
|||||||
- [x] Fix string printing to be js instead of weird Idris strings
|
- [x] Fix string printing to be js instead of weird Idris strings
|
||||||
- [x] make $ special
|
- [x] make $ special
|
||||||
- Makes inference easier, cleaner output, and allows `foo $ \ x => ...`
|
- Makes inference easier, cleaner output, and allows `foo $ \ x => ...`
|
||||||
- [ ] `$` no longer works inside ≡⟨ ⟩ sort out how to support both that and `$ \ x => ...` (or don't bother)
|
- [ ] `$` no longer works inside ≡⟨ ⟩ - sort out how to support both that and `$ \ x => ...` (or don't bother)
|
||||||
- We'd either need to blacklist all non-initial mixfix bits at the appropriate spots or always pass around a terminating token.
|
- We'd either need to blacklist all non-initial mixfix bits at the appropriate spots or always pass around a terminating token.
|
||||||
|
- I'm leaning towards _no_ here, because I may want to lift mixfix processing out of the parsing step in the future. This isn't
|
||||||
- [x] **Translate newt to newt**
|
- [x] **Translate newt to newt**
|
||||||
- [x] Support @ on the LHS
|
- [x] Support @ on the LHS
|
||||||
- [x] if / then / else sugar
|
- [x] if / then / else sugar
|
||||||
@@ -231,18 +232,20 @@
|
|||||||
- [x] accepting DCon for another type (skipping case, but should be an error)
|
- [x] accepting DCon for another type (skipping case, but should be an error)
|
||||||
- [ ] don't allow (or dot) duplicate names on LHS
|
- [ ] don't allow (or dot) duplicate names on LHS
|
||||||
- [x] remove metas from context, M has TopContext
|
- [x] remove metas from context, M has TopContext
|
||||||
- [ ] improve test driver
|
- [ ] add unit test framework
|
||||||
- maybe a file listing jobs, whether they are known broken, optional expected output, optional expected JS execution output.
|
|
||||||
- [x] forall / ∀ sugar (Maybe drop this, issues with `.` and `{A}` works fine)
|
- [x] forall / ∀ sugar (Maybe drop this, issues with `.` and `{A}` works fine)
|
||||||
- [x] Bad module name error has FC 0,0 instead of the module or name
|
- [x] Bad module name error has FC 0,0 instead of the module or name
|
||||||
- [ ] Revisit substitution in case building
|
- [ ] Revisit substitution in case building
|
||||||
- [x] Check for shadowing when declaring dcon
|
- [x] Check for shadowing when declaring dcon
|
||||||
- Handles the forward decl in `Zoo1.newt`, but we'll need different syntax if
|
- Handles the forward decl in `Zoo1.newt`, but we'll need different syntax if
|
||||||
we have different core terms for TCon/DCon/Function
|
we have different core terms for TCon/DCon/Function
|
||||||
- [ ] Require infix decl before declaring mixfix names with `_` (helps find bugs) or implicitly define as infixl something if it is missing
|
- [ ] Require infix decl before declaring mixfix names with `_` (helps find bugs) or implicitly define as infixl if it is missing
|
||||||
- [x] sugar for typeclasses
|
- [x] sugar for typeclasses
|
||||||
- [x] maybe add implicits in core to help resugar operators?
|
- [x] maybe add implicits in core to help resugar operators?
|
||||||
- [ ] consider putting binders in environment, like Idris, to better mark `let` and to provide names
|
- [ ] consider putting binders in environment, like Idris, to better mark `let` and to provide names
|
||||||
|
- I might want to distinguish `let` from pattern vars from user-`let`. The latter we probably want to exist
|
||||||
|
in emitted code, and the former inlined. Currently they both live in context and the inlining occurs during
|
||||||
|
code-gen if the definition is simple enough (other vars or projections).
|
||||||
- [x] move some top-level chattiness to `debug`
|
- [x] move some top-level chattiness to `debug`
|
||||||
- [ ] consider optionally compiling to eliminators for a second type-checking pass to help catch bugs.
|
- [ ] consider optionally compiling to eliminators for a second type-checking pass to help catch bugs.
|
||||||
- [x] Allow unicode operators/names
|
- [x] Allow unicode operators/names
|
||||||
@@ -311,13 +314,14 @@
|
|||||||
- [ ] remove erased top level arguments
|
- [ ] remove erased top level arguments
|
||||||
- maybe have something shaped like `List Bool` for `arity`
|
- maybe have something shaped like `List Bool` for `arity`
|
||||||
- [x] top level at point in vscode
|
- [x] top level at point in vscode
|
||||||
- [ ] repl
|
- [x] repl
|
||||||
- [x] don't match forced constructors at runtime
|
- [x] don't match forced constructors at runtime
|
||||||
- I think we got this by not switching for single cases
|
- I think we got this by not switching for single cases
|
||||||
- [x] magic nat (codegen as number with appropriate pattern matching)
|
- [x] magic nat (codegen as number with appropriate pattern matching)
|
||||||
- [ ] magic tuple? (codegen as array)
|
- [ ] magic tuple? (codegen as array)
|
||||||
- Seems like this would be tricky as soon as the user starts peeling off the tail or consing them
|
- Seems like this would be tricky as soon as the user starts peeling off the tail or consing them
|
||||||
- [ ] magic newtype? (drop them in codegen)
|
- [ ] magic newtype? (drop them in codegen)
|
||||||
|
- Needed before we newtype IO, so the tail recursion still works
|
||||||
- [x] vscode: syntax highlighting for String
|
- [x] vscode: syntax highlighting for String
|
||||||
- [ ] add `poper` or variant of `pfunc` that maps to an operator, giving the js operator and precedence on RHS
|
- [ ] add `poper` or variant of `pfunc` that maps to an operator, giving the js operator and precedence on RHS
|
||||||
- This has now been hard-coded in codegen, but a syntax or something would be better.
|
- This has now been hard-coded in codegen, but a syntax or something would be better.
|
||||||
|
|||||||
Reference in New Issue
Block a user