Eq :: * -> Constraint Ord :: * -> Constraint Monad :: (* -> *) -> ConstraintThe 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.
target.target_attr = source.source_attr × multiplier + constantEach GtkConstraint is part of a system that will be solved by a ConstraintLayout in order to allocate and position each child widget or guide. The source and target, as well as their attributes, of a GtkConstraint instance are immutable after creation.