The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful features, leading to an expressive language of type terms. In contrast, constraints over types have received much less attention, creating an imbalance in the expressivity of the type system. In this paper, we rectify the imbalance, transferring familiar type-level constructs, synonyms and families, to the language of constraints, providing a symmetrical set of features at the type-level and constraint-level. We introduce constraint synonyms and constraint families, and illustrate their increased expressivity for improving the utility of polymorphic EDSLs in Haskell, amongst other examples. We provide a discussion of the semantics of the new featur...
Haskell, as implemented in the Glasgow Haskell Compiler (GHC), has been adding new type-level progra...
We discuss type classes in the context of the Chameleon language, a Haskell-style language where ove...
Wouter Swierstra’s data types a ̀ la carte is a technique to modu-larise data type definitions in Ha...
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful featu...
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful featur...
Although the functional programming language Haskell has a powerful type class system, users frequen...
We study the type inference problem for a system with type classes as in the functional programming ...
Qualified types provide a general framework for constrained type systems, with applications includin...
Abstract. Haskell 2010 lacks flexibility in creating instances of type classes for type constructors...
We present a domain-specific embedded language that allows the definition of rule systems in Haskell...
Static typing is one of the most prominent techniques in the design of programming languages for mak...
Attribute Grammars (AGs), a general-purpose formalism for describing recursive computations over dat...
Haskell, as implemented in the Glasgow Haskell Compiler (GHC), is enriched with many extensions that...
Qualified types provide a general framework for constrained type systems, with applications includin...
Type classes and type families are key ingredients in Haskell pro-gramming. Type classes were introd...
Haskell, as implemented in the Glasgow Haskell Compiler (GHC), has been adding new type-level progra...
We discuss type classes in the context of the Chameleon language, a Haskell-style language where ove...
Wouter Swierstra’s data types a ̀ la carte is a technique to modu-larise data type definitions in Ha...
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful featu...
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful featur...
Although the functional programming language Haskell has a powerful type class system, users frequen...
We study the type inference problem for a system with type classes as in the functional programming ...
Qualified types provide a general framework for constrained type systems, with applications includin...
Abstract. Haskell 2010 lacks flexibility in creating instances of type classes for type constructors...
We present a domain-specific embedded language that allows the definition of rule systems in Haskell...
Static typing is one of the most prominent techniques in the design of programming languages for mak...
Attribute Grammars (AGs), a general-purpose formalism for describing recursive computations over dat...
Haskell, as implemented in the Glasgow Haskell Compiler (GHC), is enriched with many extensions that...
Qualified types provide a general framework for constrained type systems, with applications includin...
Type classes and type families are key ingredients in Haskell pro-gramming. Type classes were introd...
Haskell, as implemented in the Glasgow Haskell Compiler (GHC), has been adding new type-level progra...
We discuss type classes in the context of the Chameleon language, a Haskell-style language where ove...
Wouter Swierstra’s data types a ̀ la carte is a technique to modu-larise data type definitions in Ha...