Affiliation:
1. University of Pennsylvania, Philadelphia, PA, USA
Abstract
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 (type-level 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 equality proofs. As a result, type-level computation does not have access to kind-level 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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
8 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Seeking stability by being lazy and shallow: lazy and shallow instantiation is user friendly;Proceedings of the 14th ACM SIGPLAN International Symposium on Haskell;2021-08-18
2. Generic programming of all kinds;ACM SIGPLAN Notices;2018-12-07
3. Sums of products for mutually recursive datatypes: the appropriationist’s view on generic programming;Proceedings of the 3rd ACM SIGPLAN International Workshop on Type-Driven Development;2018-09-27
4. Generic programming of all kinds;Proceedings of the 11th ACM SIGPLAN International Symposium on Haskell;2018-09-17
5. Algebraic dynamic programming for multiple context-free grammars;Theoretical Computer Science;2016-08