Haskell, as implemented in the Glasgow Haskell Compiler (GHC), is enriched with many extensions that support type-level programming, such as promoted datatypes, kind polymorphism, and type families. Yet, the expressiveness of the type-level language remains limited. It is missing many features present at the term level, including case expressions, anonymous functions, partially-applied functions, and let expressions. In this paper, we present an algorithm – with a proof of correctness – to encode these term-level constructs at the type level. Our approach is automated and capable of promoting a wide array of functions to type families.We also highlight and discuss those term-level features that are not promotable. In so doing, we offer a cr...
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful featu...
Static type systems strive to be richly expressive while still being simple enough for programmers t...
System FC, the core language of the Glasgow Haskell Compiler, is an explicitly-typed variant of Syst...
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...
Type family applications in Haskell must be fully saturated. This means that all type-level function...
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...
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...
Haskell programmers have been experimenting with dependent types for at least a decade, using clever...
Haskell has a rich type system with various complementary, interacting and overlapping features. In ...
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful featur...
Type classes and type families are key ingredients in Haskell programming. Type classes were introdu...
Haskell, as implemented in the Glasgow Haskell Compiler (GHC), has been adding new type-level progra...
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful featu...
Static type systems strive to be richly expressive while still being simple enough for programmers t...
System FC, the core language of the Glasgow Haskell Compiler, is an explicitly-typed variant of Syst...
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...
Type family applications in Haskell must be fully saturated. This means that all type-level function...
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...
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...
Haskell programmers have been experimenting with dependent types for at least a decade, using clever...
Haskell has a rich type system with various complementary, interacting and overlapping features. In ...
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful featur...
Type classes and type families are key ingredients in Haskell programming. Type classes were introdu...
Haskell, as implemented in the Glasgow Haskell Compiler (GHC), has been adding new type-level progra...
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful featu...
Static type systems strive to be richly expressive while still being simple enough for programmers t...
System FC, the core language of the Glasgow Haskell Compiler, is an explicitly-typed variant of Syst...