Journal of Functional Programming · 2016 · 19 citations · 10 references
ComputingComputer ScienceCompilersFormal MethodsProgramming LanguagesAbstract Syntax TreesCompiler ConstructionData TypesIntermediate RepresentationType CheckingType SystemsAbstraction MechanismsIntermediate Representation DesignPolymorphic TypesType ConstructorsType ConversionType PolymorphismType SafetyType-level Programming
Abstract Generative type abstractions – present in Haskell, OCaml, and other languages – are useful concepts to help prevent programmer errors. They serve to create new types that are distinct at compile time but share a run-time representation with some base type. We present a new mechanism that allows for zero-cost conversions between generative type abstractions and their representations, even when such types are deeply nested. We prove type safety in the presence of these conversions and have implemented our work in GHC.
10
Cordelia Hall, Kevin Hammond, Simon Jones et al. · ACM Transactions on Programming Languages and Systems · 1996 · 251 citations · Full text
System F with type equality coercions
Martin Sulzmann, Manuel M. T. Chakravarty, Simon Peyton Jones et al. · 2007 · 239 citations
Manuel M. T. Chakravarty, Gabriele Keller, Simon Peyton Jones · 2005 · 223 citations
James Cheney, Ralf Hinze · eCommons (Cornell University) · 2003 · 180 citations · Full text
Brent A. Yorgey, Stephanie Weirich, Julien Cretin et al. · 2012 · 174 citations · Full text