unison-parser-typechecker-0.0.0
Safe HaskellNone
LanguageHaskell2010

Unison.KindInference.Constraint.Unsolved

Synopsis

Documentation

data Constraint uv v loc (typeProv :: Type -> Type -> Type) Source #

Unsolved constraints

These are produced during constraint generation and given as input to the constraint solver.

Constructors

IsType uv (typeProv v loc)

An IsType constraint may arise from generation or from the solver. During generation the provenance is always a real source code location, but the solver defaults unconstrained kind vars to Star.

IsArr uv (Provenance v loc) uv uv 
IsAbility uv (Provenance v loc) 
Unify (Provenance v loc) uv uv 

Instances

Instances details
(Show v, Show loc, Show uv, Show (typeProv v loc)) => Show (Constraint uv v loc typeProv) Source # 
Instance details

Defined in Unison.KindInference.Constraint.Unsolved

Methods

showsPrec :: Int -> Constraint uv v loc typeProv -> ShowS #

show :: Constraint uv v loc typeProv -> String #

showList :: [Constraint uv v loc typeProv] -> ShowS #

(Var v, Eq loc, Eq uv, Eq (typeProv v loc)) => Eq (Constraint uv v loc typeProv) Source # 
Instance details

Defined in Unison.KindInference.Constraint.Unsolved

Methods

(==) :: Constraint uv v loc typeProv -> Constraint uv v loc typeProv -> Bool #

(/=) :: Constraint uv v loc typeProv -> Constraint uv v loc typeProv -> Bool #

(Var v, Ord loc, Ord uv, Ord (typeProv v loc)) => Ord (Constraint uv v loc typeProv) Source # 
Instance details

Defined in Unison.KindInference.Constraint.Unsolved

Methods

compare :: Constraint uv v loc typeProv -> Constraint uv v loc typeProv -> Ordering #

(<) :: Constraint uv v loc typeProv -> Constraint uv v loc typeProv -> Bool #

(<=) :: Constraint uv v loc typeProv -> Constraint uv v loc typeProv -> Bool #

(>) :: Constraint uv v loc typeProv -> Constraint uv v loc typeProv -> Bool #

(>=) :: Constraint uv v loc typeProv -> Constraint uv v loc typeProv -> Bool #

max :: Constraint uv v loc typeProv -> Constraint uv v loc typeProv -> Constraint uv v loc typeProv #

min :: Constraint uv v loc typeProv -> Constraint uv v loc typeProv -> Constraint uv v loc typeProv #

typeProv :: forall uv v loc prov prov' f. Applicative f => (prov v loc -> f (prov' v loc)) -> Constraint uv v loc prov -> f (Constraint uv v loc prov') Source #

prov :: forall uv v loc loc' f. Functor f => (Provenance v loc -> f (Provenance v loc')) -> Constraint uv v loc Provenance -> f (Constraint uv v loc' Provenance) Source #

loc :: forall uv v loc f. Functor f => (loc -> f loc) -> Constraint uv v loc Provenance -> f (Constraint uv v loc Provenance) Source #