System FC with explicit kind equality

Stephanie Weirich, Justin Hsu, Richard A. Eisenberg
2013 Proceedings of the 18th ACM SIGPLAN international conference on Functional programming - ICFP '13  
System FC, the core language of the Glasgow Haskell Compiler, is an explicitly-typed variant of System F with first-class type equality proofs called coercions. This extensible proof system forms the foundation for type system extensions such as type families (typelevel functions) and Generalized Algebraic Datatypes (GADTs). Such features, in conjunction with kind polymorphism and datatype promotion, support expressive compile-time reasoning. However, the core language lacks explicit kind
more » ... ty proofs. As a result, type-level computation does not have access to kindlevel functions or promoted GADTs, the type-level analogues to expression-level features that have been so useful. In this paper, we eliminate such discrepancies by introducing kind equalities to System FC. Our approach is based on dependent type systems with heterogeneous equality and the "Type-in-Type" axiom, yet it preserves the metatheoretic properties of FC. In particular, type checking is simple, decidable and syntax directed. We prove the preservation and progress theorems for the extended language.
doi:10.1145/2500365.2500599 dblp:conf/icfp/WeirichHE13 fatcat:lytfkdjfsrcvzep6ptqhqdw3e4