Constraint

The kind of lifted constraints
This module defines types and simple operations over constraints, as used in the type-checker and constraint solver.
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 constraints, like Show a
Valid for: E; Default: True; Parsing Default: True; Notes: Dot only
Constraints for indexed datatypes. This module contains code that helps to specify that all elements of an indexed structure must satisfy a particular constraint.
GtkConstraint describes a constraint between attributes of two widgets, expressed as a linear equation. The typical equation for a constraint is:
target.target_attr = source.source_attr × multiplier + constant
Each 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.
Memory-managed wrapper type.
Values that we can turn into a constraint
A constraint is an edge in the graph.
An implementation of the Semantic Versioning Constraints. In absence of a standard around constraints, the behavior of node-semver is closely followed. The behavior is outlined here: https://github.com/npm/node-semver#ranges
Constrains allowable version numbers. Use parseConstraint to create constraints and satisfiesConstraint to see if a version number satisfies a constraint.
This module provides compatibility definitions of constraint context template for before temaplate-haskell-2.9
A linear constraint of two variables.