update readme

This commit is contained in:
2024-08-29 21:58:46 -07:00
parent b4af384936
commit 4c205a0c28

View File

@@ -1,15 +1,6 @@
"Unifiers as Equivalences" has unification with types. Look into adapting some of that (or at least read/understand it). Indexed types are mentioned here.
"Elaborating Dependent (Co)pattern Matching" describes building case trees. Section 5.2 has the algorithm.
"A prettier printer" was the basis of the pretty printer.
"Elaboration Zoo" was a resource for typechecking and elaboration. In particular pattern unification and handling of implicits is based on that.
- [x] Support primitives - [x] Support primitives
- Make DCon/TCon separate from Ref? (Or add flavor to VRef/Ref? If processing is often the same. I think I want arity though. I don't think a checked DCon can be overapplied, but it could be underapplied without special form. And special form is possibly difficult if not collecting a stack on the way down... - [ ] Make DCon/TCon separate from Ref? (Or add flavor to VRef/Ref? If processing is often the same. I think I want arity though. I don't think a checked DCon can be overapplied, but it could be underapplied without special form. And special form is possibly difficult if not collecting a stack on the way down...
Need to typecheck case - learning stuff like `n = S k` is not happening and the final bit of the data constructor doesn't unify with the data type, because we're not handling `Bnd n =?= Val`. Cockx collects a list of constraints. We might want flags on unification to enable that? Need to typecheck case - learning stuff like `n = S k` is not happening and the final bit of the data constructor doesn't unify with the data type, because we're not handling `Bnd n =?= Val`. Cockx collects a list of constraints. We might want flags on unification to enable that?
@@ -123,6 +114,7 @@ Code generation is partially done.
We're stopping at zoo4 for now. We're stopping at zoo4 for now.
### Typecheck / Elaboration ### Typecheck / Elaboration
- [ ] think about whether there needs to be a desugar step separate from check/infer - [ ] think about whether there needs to be a desugar step separate from check/infer
@@ -134,6 +126,19 @@ We're stopping at zoo4 for now.
- [ ] look into Lennart.newt issues - [ ] look into Lennart.newt issues
- [ ] figure out how to add laziness (might have to be via the monad) - [ ] figure out how to add laziness (might have to be via the monad)
### References
"Unifiers as Equivalences" has unification with types. Look into adapting some of that (or at least read/understand it). Indexed types are mentioned here.
"Elaborating Dependent (Co)pattern Matching" describes building case trees. Section 5.2 has the algorithm.
"A prettier printer" was the basis of the pretty printer.
"Elaboration Zoo" was a resource for typechecking and elaboration. In particular pattern unification and handling of implicits is based on that.
### Misc Notes
So smalltt has TopVar with a Level. typechecking binders end up as top too. 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). 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).