Preliminary work on data and holes

This commit is contained in:
2024-07-06 14:23:41 -04:00
parent b9f921ab3b
commit 46ddbc1f91
17 changed files with 311 additions and 169 deletions

View File

@@ -12,6 +12,15 @@ So smalltt has TopVar with a Level. typechecking binders end up as top too.
Also delayed unfolded values for top or solved metas. This looks like glue - all the bits for the top and a cached value (it's keeping top as values).
We need metas next. SmallTT has a metactx in context as a mutable array.
We extend the context and then drop it, so we need soemthing mutable.
It's in top context and he pulls stuff down to context as needed. I'm overthinking this. I'm reluctant to copy Idris because resolved names are not compatible with query based, but everybody is using an array...
I'd kinda like to see array run in js...
Idris does a common array for metas and defs.
@@ -20,14 +29,15 @@ Parser:
- [x] def
- [x] simple decl
- [x] List not in scope
- [ ] vscode support for .newt
- [x] vscode support for .newt
- [ ] Should I switch this back over to the App monad?
- [ ] Error object like pi-forall
- [x] Error object like pi-forall
- [ ] Get implicits working
- [x] Replace on define
- [x] more sugar on lambdas
- [ ] tests for parsing and pretty printing
- [ ] inductive types
- [ ] read data definitions 1/2 done
- [x] read files
- [x] process a file
- [x] figure out context representation - Global context?
@@ -43,5 +53,8 @@ Forward:
- [ ] Switch to query-based?
- [ ] LSP?
- [ ] white box testing
-
f
----
pi-forall sticks equality into scope as something like let. Not sure if this is compatible with deBruijn. Possibly if we have everything at elab time? But if `x = y` then previous stuff has a different `x`?