🧭 Roadmap
✔️ Mission 1
- Hindley-Milner type inference
- Safe subset of System Fω
- Algebraic Data Type (ADT)
✔️ Mission 2
- Traits a.k.a., Type Class
- Trait Record - Type Class as first-class record value
✔️ Mission 3
- Multi-Parameter Type Class (MPTC)
- Higher-order Trait Record - MPTC as first-class record value
- Overloaded Function Template
- Type and requires inference w/o type annotation
Extra Mission 1
- Safe and Unsafe numeric conversion
- Array, String type
- Pretty-Printing Combinators
- Stream for Parser Combinators
- Parser Combinators
- Safe Type Family (
type trait/type impl) - String Family Literals
Extra Mission 2 - Proc system
- Procedures with side-effects
- Dynamic arrays (mutable / growable arrays)
- Standard I/O
- File I/O
- Async-Computation and Async I/O combinators
Extra Mission 3 - Optimization
- Unboxed arrays (for non-primitive types)
- Object file, Link-Loader
- Alias analysis and reuse analysis of heap memory.
- LLVM IR code generator.
It’s a long, long journey…