Haskell Type Constraints Unleashed

Haskell Type Constraints Unleashed - D. Orchard, T. Schrijvers

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.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Seems like front page material to me

This is very interesting work. Figuring out a way to make Set a Functor in Haskell is a worthy goal, and this paper seems to have hit on a way to do it with workable (and general) changes to the type system and reasonable termination conditions.


Thanks for the suggestion, I've promoted it to the front page.

Just a quick reminder: The

Just a quick reminder: The way this is supposed to work is for members to volunteer to be contributing editors, and then post to the home page directly...

Previous work

How come the paper has no citation of Max Bolingbroke's blog post which introduced the idea and the syntax for this?


I assume you mean Max's post Constraint families. It's reference [16] (cited Class families and constraint families have been discussed informally in blog posts and online discussions [8, 16]), and he's singled out in the acknowledgements.