Decoupling Resolution from Type Inference
summary
Prototype language wit implements hybrid resolution: a fast, local type-aware static analysis that runs before full type inference to choose overloads and implicits. It uses control-flow analysis (subtype-inference without generalization), requires exported signatures for modularity and treats local definitions as monomorphic for resolution. The compiler flags only missing or ambiguous resolutions, then runs full type checking optionally; implementation targets WebAssembly and is already prototyped — resolution works on real examples though some edge-case type errors still surface later.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 1:48Dynamic vs static languages
- 6:33Resolution in static languages
- 7:36Decoupling resolution from type inference
- 11:49From MLScript to Wit
- 13:34Wit design goals
- 16:49Type class resolution in Wit
- 18:54Implicit namespacing and extensions
- 20:36Wit features and future
- 21:20Q&A
related talks
27mTowards Type Debugging using Partial Evaluation
18mDeveloping a Dependently Typed Language with Runtime Proof Search
21mPolymorphic Type Inference for Dynamic Languages
21mSeamless Scope-Safe Metaprogramming Through Polymorphic Subtype Inference (Short Paper)
15mResolution as Intersection Subtyping via Modus Ponens
17mSampling Optimized Code for Type Feedback
30mDotty and types: the story so far
25mIncremental Type-Checking for Free: Using Scope Graphs to Derive Incremental Type-Checkers
