,Z"      non-portable experimentalEdward Kmett <ekmett@gmail.com> Trustworthy HReify the relationship between an instance head and its body as a class QReify the relationship between a class and its superclass constraints as a class ,Capture a dictionary for a given constraint  Given that a :- b(, derive something that needs a context b, using the context a Hdue to the hack for the kind of (,) in the current version of GHC we can' t actually B make instances for (,) :: Constraint -> Constraint -> Constraint Weakening a constraint product Weakening a constraint product Contracting a constraint / diagonal morphism Constraint product  trans weaken1 (f &&& g) = f  trans weaken2 (f &&& g) = g Transitivity of entailment  If we view '(:-)'0 as a Constraint-indexed category, then this is '(.)' Reflexivity of entailment  If we view '(:-)'0 as a Constraint-indexed category, then this is  Every constraint implies truth NThese are the terminal arrows of the category, and () is the terminal object.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ non-portable experimentalEdward Kmett <ekmett@gmail.com>Unsafe6Coerce a dictionary unsafely from one type to another ECoerce a dictionary unsafely from one type to a newtype of that type GCoerce a dictionary unsafely from a newtype of a type to the base type /Construct an Applicative instance from a Monad 3Construct an Alternative instance from a MonadPlus  non-portable experimentalEdward Kmett <ekmett@gmail.com> TrustworthyA quantified constraint ,instantiate a quantified constraint on kind * ,instantiate a quantified constraint on kind * -> *         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~constraints-0.3.3Data.ConstraintData.Constraint.UnsafeData.Constraint.Forallghc-primGHC.Prim Constraint:=>insClasscls:-SubDict\\***weaken1weaken2contract&&&transrefltopunsafeCoerceConstraint unsafeDeriveunsafeUnderiveunsafeApplicativeunsafeAlternativeForallTForall1ForallFForallinstinstFinst1instTbaseControl.Categoryid $fMonoidDict $f:=>aMonoid $f:=>aRead $fBoundedDict $f:=>aBounded $fEnumDict $f:=>aEnum$f:=>()MonadPlus$f:=>()MonadPlus0$fClassMonadMonadPlus $f:=>()Monad $f:=>()Monad0 $f:=>()Monad1 $f:=>()Monad2$fClass()Monad$f:=>MonadPlusAlternative$f:=>()Alternative$f:=>()Alternative0$fClassApplicativeAlternative$f:=>MonadApplicative$f:=>MonoidApplicative$f:=>()Applicative$f:=>()Applicative0$f:=>()Applicative1$f:=>()Applicative2$f:=>()Applicative3$fClassFunctorApplicative$f:=>MonadFunctor$f:=>()Functor$f:=>()Functor0$f:=>()Functor1$f:=>()Functor2$f:=>()Functor3$f:=>()Functor4$fClass()Functor$f:=>(,)Monoid$f:=>MonoidMonoid $f:=>()Monoid$f:=>()Monoid0$f:=>()Monoid1$fClass()Monoid$f:=>()RealFloat$f:=>()RealFloat0$fClass(,)RealFloat$f:=>IntegralRealFrac$f:=>()RealFrac$f:=>()RealFrac0$fClass(,)RealFrac$f:=>RealFloatFloating$f:=>()Floating$f:=>()Floating0$fClassFractionalFloating$f:=>IntegralFractional$f:=>RealFloatFractional$f:=>()Fractional$f:=>()Fractional0$fClassNumFractional$f:=>()Integral$f:=>()Integral0$fClass(,)Integral$f:=>IntegralReal $f:=>()Real $f:=>()Real0 $f:=>()Real1 $f:=>()Real2$fClass(,)Real$f:=>IntegralNum$f:=>RealFloatNum $f:=>()Num $f:=>()Num0 $f:=>()Num1 $f:=>()Num2 $fClass()Num$f:=>(,)Bounded$f:=>()Bounded$f:=>()Bounded0$f:=>()Bounded1$f:=>()Bounded2$f:=>()Bounded3$fClass()Bounded$f:=>IntegralEnum $f:=>()Enum $f:=>()Enum0 $f:=>()Enum1 $f:=>()Enum2 $f:=>()Enum3 $f:=>()Enum4 $f:=>()Enum5 $f:=>()Enum6 $fClass()Enum $f:=>(,)Read $f:=>(,)Read0 $f:=>(,)Read1 $f:=>ReadRead$f:=>ReadRead0$f:=>ReadRead1 $f:=>()Read $f:=>()Read0 $f:=>()Read1 $f:=>()Read2 $fClass()Read $f:=>()Show $f:=>()Show0 $f:=>(,)Show $f:=>(,)Show0 $f:=>(,)Show1 $f:=>ShowShow$f:=>ShowShow0$f:=>ShowShow1 $f:=>()Show1 $f:=>()Show2 $f:=>()Show3 $f:=>()Show4 $fClass()Show $f:=>()Ord $f:=>()Ord0$f:=>IntegralOrd $f:=>(,)Ord $f:=>(,)Ord0 $f:=>OrdOrd $f:=>OrdOrd0 $f:=>()Ord1 $f:=>()Ord2 $f:=>()Ord3 $f:=>()Ord4 $f:=>()Ord5 $f:=>()Ord6 $f:=>()Ord7 $fClassEqOrd $f:=>()Eq $f:=>()Eq0 $f:=>(,)Eq $f:=>(,)Eq0 $f:=>EqEq $f:=>EqEq0 $f:=>EqEq1 $f:=>EqEq2 $f:=>()Eq1 $f:=>()Eq2 $f:=>()Eq3 $f:=>()Eq4 $f:=>()Eq5 $f:=>()Eq6 $fClass()Eq $f:=>()() $fClass()() $f:=>():=> $f:=>()Class $fClass():=>$fClass()Class$fShow:-$fOrd:-$fEq:-MFBA