HORIZON HASKELLDocslts/ghc-9.14.xd82dee82026-10-12Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · d82dee8 · 2026-10-12

Modulecapability-0.5.0.1Haskell2010

Capability.Constraints

This module defines helper types and type families for working with sets of capabilities.

  • 3 types
  • Packagecapability-0.5.0.1
  • Exports4
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceConstraints.hs
familytype family All (xs :: [k -> Constraint]) (a :: k) :: Constraint where
#

Type family used used to express a conjunction of constraints over a single type.

Examples:

All '[Num, Eq] Int
  -- Equivalent to: (Num Int, Eq Int)

All '[HasReader "foo" Int, HasSink "bar" Float] m
  -- Equivalent to: (HasReader "foo" Int m, HasSink "bar" Float m)

Equations

  • All '[] a = ()
  • All (x ': xs) a = (x a, All xs a)

The kind of lifted constraints

Instances5Category, InstV, ForallV'
  • Category (:-)Defined in constraints-0.14.4 · Data.Constraint

    Possible since GHC 7.8, when Category was made polykinded.

  • p ~ c => InstV p cDefined in constraints-0.14.4 · Data.Constraint.Forall
  • p a ~ c => InstV p cDefined in constraints-0.14.4 · Data.Constraint.Forall
  • type ForallV' p = Forall pDefined in constraints-0.14.4 · Data.Constraint.Forall
  • type ForallV' p = pDefined in constraints-0.14.4 · Data.Constraint.Forall
datadata Dict (a :: Constraint) where
#

Values of type Dict p capture a dictionary for a constraint of type p.

e.g.

Dict :: Dict (Eq Int)

captures a dictionary that proves we have an:

instance Eq Int

Pattern matching on the Dict constructor will bring this instance into scope.

Constructors

Instances20:=>, HasDict, Bounded, Enum, Eq, Data, …
  • () :=> Semigroup (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • () :=> Eq (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • () :=> Ord (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • () :=> Show (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • a :=> Monoid (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • a :=> Bounded (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • a :=> Enum (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • a :=> Read (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • HasDict a (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • a => Bounded (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • a => Enum (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • Eq (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • (Typeable p, p) => Data (Dict p)Defined in constraints-0.14.4 · Data.Constraint
  • Ord (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • a => Read (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • Show (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • Semigroup (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • a => Monoid (Dict a)Defined in constraints-0.14.4 · Data.Constraint
  • NFData (Dict c)Defined in constraints-0.14.4 · Data.Constraint
  • c => Boring (Dict c)Defined in constraints-0.14.4 · Data.Constraint