Brisk
Brisk copied to clipboard
Rewrite TypeChecker
The current type checker while it works somewhat, it was made on the basis of what I needed at the time with little research into actual type checkers.
We want to rewrite it completly from scratch to support Type Intersection
, Polymorphism
and Proper Type Compatibility Checks.
What we need to determine:
- Does Brisk use structural equality or Nominal typing or A Mix of both this is very important currently brisk Mainly uses Nominal typechecking with a hint of Structural typing I really like this approach but I feel like we need to write out and prove the rules before they can be trusted.
- Helper functions, A lot of the work a typechecker has todo is the same and just runs of different nodes we need to determine what helpers we need and how they work.
- Wasm Alias Types, Currently we have a massive file that defines the type Defintions for all the wasm Aliases we use this works but sucks for maintainability, correctness and it is a lot of extra code in the compiler some things to consider are generating this from the spec or our wasmBuilder, or figuring out a way to define this in the language itself.