Compile-Time Dependent Types in Syl: A Deep Dive into Modes, Dependent Types, and Compile-Time Computation
Summary
The article presents Syl, a programming language that encodes compile-time computation using a modal type system with modes like static/dynamic and erased/unerased. It explains dependent types, totality, proofs, and practical examples like typed interpreters and length-indexed vectors, plus extensions such as higher-kinded types and modules. It positions compile-time type computation as a way to achieve specialization and early error detection at compile time.