Haskell, as implemented by the Glasgow Haskell Compiler (GHC), allows expressive type-level programming. The most popular type- level programming extension is TypeFamilies, which allows users to write functions on types. Yet, using type functions can cripple type inference in certain situations. In particular, lack of injectivity in type functions means that GHC can never infer an instantiation of a type variable appearing only under type functions. In this paper, we describe a small modification to GHC that allows type functions to be annotated as injective. GHC naturally must check validity of the injectivity annotations. The algorithm to do so is surprisingly subtle. We prove soundness for a simplification of our algorithm, and state and...
Multi-parameter type classes, functional dependencies, and re-cently GADTs and open type families op...
We study the type inference problem for a system with type classes as in the functional programming ...
System FC, the core language of the Glasgow Haskell Compiler, is an explicitly-typed variant of Syst...
Haskell, as implemented by the Glasgow Haskell Compiler (GHC), allows expressive type-level programm...
Haskell, as implemented by the Glasgow Haskell Compiler (GHC), allows expressive type-level programm...
Haskell, as implemented in the Glasgow Haskell Compiler (GHC), is enriched with many extensions that...
Haskell, as implemented in the Glasgow Haskell Compiler (GHC), is enriched with many extensions that...
Haskell has a rich type system with various complementary, interacting and overlapping features. In ...
Type family applications in Haskell must be fully saturated. This means that all type-level function...
Type classes and type families are key ingredients in Haskell pro-gramming. Type classes were introd...
We present an approach to support partiality in type-level computation without compromising expressi...
System FC, the core language of the Glasgow Haskell Compiler, is an explicitly-typed variant of Syst...
System FC, the core language of the Glasgow Haskell Compiler, is an explicitly-typed variant of Syst...
AbstractThe use of typed intermediate languages can significantly increase the reliability of a comp...
Static typing is one of the most prominent techniques in the design of programming languages for mak...
Multi-parameter type classes, functional dependencies, and re-cently GADTs and open type families op...
We study the type inference problem for a system with type classes as in the functional programming ...
System FC, the core language of the Glasgow Haskell Compiler, is an explicitly-typed variant of Syst...
Haskell, as implemented by the Glasgow Haskell Compiler (GHC), allows expressive type-level programm...
Haskell, as implemented by the Glasgow Haskell Compiler (GHC), allows expressive type-level programm...
Haskell, as implemented in the Glasgow Haskell Compiler (GHC), is enriched with many extensions that...
Haskell, as implemented in the Glasgow Haskell Compiler (GHC), is enriched with many extensions that...
Haskell has a rich type system with various complementary, interacting and overlapping features. In ...
Type family applications in Haskell must be fully saturated. This means that all type-level function...
Type classes and type families are key ingredients in Haskell pro-gramming. Type classes were introd...
We present an approach to support partiality in type-level computation without compromising expressi...
System FC, the core language of the Glasgow Haskell Compiler, is an explicitly-typed variant of Syst...
System FC, the core language of the Glasgow Haskell Compiler, is an explicitly-typed variant of Syst...
AbstractThe use of typed intermediate languages can significantly increase the reliability of a comp...
Static typing is one of the most prominent techniques in the design of programming languages for mak...
Multi-parameter type classes, functional dependencies, and re-cently GADTs and open type families op...
We study the type inference problem for a system with type classes as in the functional programming ...
System FC, the core language of the Glasgow Haskell Compiler, is an explicitly-typed variant of Syst...