Thu 3 Nov 2011

## What Constraints Entail: Part 1

Posted by Edward Kmett under Category Theory , Constraint Kinds , Haskell , Logic , Monads , Type Hackery , Uncategorized[6] Comments

Max Bolingbroke has done a wonderful job on adding Constraint kinds to GHC.

Constraint Kinds adds a new kind `Constraint`

, such that `Eq :: * -> Constraint`

, `Monad :: (* -> *) -> Constraint`

, but since it is a kind, we can make type families for constraints, and even parameterize constraints *on* constraints.

So, let's play with them and see what we can come up with!