Telescopic mappings in typed lambda calculus
Information and Computation
Inheritance as implicit coercion
Information and Computation
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Definition of Standard ML
Guarded recursive datatype constructors
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Non-dependent Types for Standard ML Modules
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
MPC '02 Proceedings of the 6th International Conference on Mathematics of Program Construction
Generativity and dynamic opacity for abstract types
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Journal of Functional Programming
Universes for generic programs and proofs in dependent type theory
Nordic Journal of Computing
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type system for certified binaries
ACM Transactions on Programming Languages and Systems (TOPLAS)
Advanced Topics in Types and Programming Languages
Advanced Topics in Types and Programming Languages
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Simple unification-based type inference for GADTs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
System F with type equality coercions
TLDI '07 Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation
Type checking with open type functions
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Dynamic Translucency with Abstraction Kinds and Higher-Order Coercions
Electronic Notes in Theoretical Computer Science (ENTCS)
Modeling abstract types in modules with open existential types
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
A Brief Overview of Agda --- A Functional Language with Dependent Types
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
On the power of coercion abstraction
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
Outsidein(x) modular type inference with local assumptions
Journal of Functional Programming - Dedicated to ICFP 2009
Journal of Functional Programming - Dedicated to ICFP 2009
A church-style intermediate language for MLF
Theoretical Computer Science
The right kind of generic programming
Proceedings of the 8th ACM SIGPLAN workshop on Generic programming
The HERMIT in the machine: a plugin for the interactive transformation of GHC core language programs
Proceedings of the 2012 Haskell Symposium
Proceedings of the 2012 Haskell Symposium
Equality proofs and deferred type errors: a compiler pearl
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Explicitly heterogeneous metaprogramming with MetaHaskell
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
System FC with explicit kind equality
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Closed type families with overlapping equations
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
Modular languages support generative type abstraction, ensuring that an abstract type is distinct from its representation, except inside the implementation where the two are synonymous. We show that this well-established feature is in tension with the non-parametric features of newer type systems, such as indexed type families and GADTs. In this paper we solve the problem by using kinds to distinguish between parametric and non-parametric contexts. The result is directly applicable to Haskell, which is rapidly developing support for type-level computation, but the same issues should arise whenever generativity and non-parametric features are combined.