Abstract. Haskell 2010 lacks flexibility in creating instances of type classes for type constructors with multiple type arguments. We would like to make the order of type arguments to a type constructor irrelevant to how type class instances can be specified. None of the currently available techniques in Haskell allows to do this in a satisfactory way. To flexibly create type-class instances we have added the concept of type-level lambdas as anonymous type synonyms to Haskell. As higher-order unification of lambda terms in general is undecidable, we take a conservative approach to equality between type-level lambdas. We propose a number of small changes to the constraint solver that will allow type-level lambdas to be used in type class ins...
AbstractGeneric programming allows you to write a function once, and use it many times at different ...
Qualified types provide a general framework for constrained type systems, with applications includin...
Classical phantom types are datatypes in which type constraints are expressed using type variables ...
Although the functional programming language Haskell has a powerful type class system, users frequen...
We describe the implementation of a type checker for the functional programming language Haskell tha...
We study the type inference problem for a system with type classes as in the functional programming ...
Haskell has a rich type system with various complementary, interacting and overlapping features. In ...
We study the type inference problem for a system with type classes as in the functional programming ...
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful featu...
Type classes and type families are key ingredients in Haskell programming. Type classes were introdu...
The type class system in the Haskell Programming language provides a useful abstraction for a wide r...
Type classes in Haskell are used to implement ad-hoc polymorphism, i.e. a way to ensure both to the ...
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful featur...
Abstract. The more expressive a type system, the more type information has to be provided in a progr...
We present a proof rule and an effective tactic for proving properties about Haskell type classes by...
AbstractGeneric programming allows you to write a function once, and use it many times at different ...
Qualified types provide a general framework for constrained type systems, with applications includin...
Classical phantom types are datatypes in which type constraints are expressed using type variables ...
Although the functional programming language Haskell has a powerful type class system, users frequen...
We describe the implementation of a type checker for the functional programming language Haskell tha...
We study the type inference problem for a system with type classes as in the functional programming ...
Haskell has a rich type system with various complementary, interacting and overlapping features. In ...
We study the type inference problem for a system with type classes as in the functional programming ...
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful featu...
Type classes and type families are key ingredients in Haskell programming. Type classes were introdu...
The type class system in the Haskell Programming language provides a useful abstraction for a wide r...
Type classes in Haskell are used to implement ad-hoc polymorphism, i.e. a way to ensure both to the ...
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful featur...
Abstract. The more expressive a type system, the more type information has to be provided in a progr...
We present a proof rule and an effective tactic for proving properties about Haskell type classes by...
AbstractGeneric programming allows you to write a function once, and use it many times at different ...
Qualified types provide a general framework for constrained type systems, with applications includin...
Classical phantom types are datatypes in which type constraints are expressed using type variables ...