Constraint package:constraints
ConstraintKinds made type classes into types of a new kind,
Constraint.
Eq :: * -> Constraint
Ord :: * -> Constraint
Monad :: (* -> *) -> Constraint
The need for this extension was first publicized in the paper
Scrap your boilerplate with class: extensible generic functions
by Ralf Lämmel and Simon Peyton Jones in 2005, which shoehorned all
the things they needed into a custom
Sat typeclass.
With
ConstraintKinds we can put into code a lot of tools for
manipulating these new types without such awkward workarounds.
The kind of lifted constraints
Constraint manipulation
GHC 7.4 gave us the ability to talk about ConstraintKinds.
They stopped crashing the compiler in GHC 7.6.
This package provides a vocabulary for working with them.
Coerce a dictionary unsafely from one type to another