unison-parser-typechecker-0.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

Unison.Typechecker.Variance

Documentation

data Polarity v Source #

Constructors

Positive 
Negative 
Exact 
As v 
Op v 

Instances

Instances details
Show v => Show (Polarity v) Source # 
Instance details

Defined in Unison.Typechecker.Variance

Methods

showsPrec :: Int -> Polarity v -> ShowS #

show :: Polarity v -> String #

showList :: [Polarity v] -> ShowS #

Eq v => Eq (Polarity v) Source # 
Instance details

Defined in Unison.Typechecker.Variance

Methods

(==) :: Polarity v -> Polarity v -> Bool #

(/=) :: Polarity v -> Polarity v -> Bool #

Ord v => Ord (Polarity v) Source # 
Instance details

Defined in Unison.Typechecker.Variance

Methods

compare :: Polarity v -> Polarity v -> Ordering #

(<) :: Polarity v -> Polarity v -> Bool #

(<=) :: Polarity v -> Polarity v -> Bool #

(>) :: Polarity v -> Polarity v -> Bool #

(>=) :: Polarity v -> Polarity v -> Bool #

max :: Polarity v -> Polarity v -> Polarity v #

min :: Polarity v -> Polarity v -> Polarity v #

data Variance Source #

Constructors

Any 
Pos 
Neg 
Inv 

Instances

Instances details
Show Variance Source # 
Instance details

Defined in Unison.Typechecker.Variance

Eq Variance Source # 
Instance details

Defined in Unison.Typechecker.Variance

Ord Variance Source # 
Instance details

Defined in Unison.Typechecker.Variance

combine :: Ord v => [Map v [Polarity v]] -> Map v [Polarity v] Source #

simplify :: Var v => v -> [Polarity v] -> [Polarity v] Source #

chain :: Var v => Map v [Polarity v] -> [Polarity v] -> [Polarity v] Source #

solve :: Var v => Map v [Polarity v] -> Map v Variance Source #