RSolve-2.0.0.0

Safe HaskellNone
LanguageHaskell2010

RSolve.HM

Description

HM unification implementations based on propositional logics, based on nominal type system. Author: Taine Zhao(thautwarm) Date: 2019-08-04 License: MIT

Documentation

type Fix a = a -> a Source #

data T Source #

Constructors

TVar Int 
TFresh String 
T :-> T infixl 6 
T :* T infixl 6 
TForall (Set String) T 
TApp T T 
TNom Int 
Instances
Eq T Source # 
Instance details

Defined in RSolve.HM

Methods

(==) :: T -> T -> Bool #

(/=) :: T -> T -> Bool #

Ord T Source # 
Instance details

Defined in RSolve.HM

Methods

compare :: T -> T -> Ordering #

(<) :: T -> T -> Bool #

(<=) :: T -> T -> Bool #

(>) :: T -> T -> Bool #

(>=) :: T -> T -> Bool #

max :: T -> T -> T #

min :: T -> T -> T #

Show T Source # 
Instance details

Defined in RSolve.HM

Methods

showsPrec :: Int -> T -> ShowS #

show :: T -> String #

showList :: [T] -> ShowS #

deConsTOp :: T -> Maybe (T -> T -> T, T, T) Source #

data Unif Source #

Constructors

Unif 

Fields

Instances
Eq Unif Source # 
Instance details

Defined in RSolve.HM

Methods

(==) :: Unif -> Unif -> Bool #

(/=) :: Unif -> Unif -> Bool #

Ord Unif Source # 
Instance details

Defined in RSolve.HM

Methods

compare :: Unif -> Unif -> Ordering #

(<) :: Unif -> Unif -> Bool #

(<=) :: Unif -> Unif -> Bool #

(>) :: Unif -> Unif -> Bool #

(>=) :: Unif -> Unif -> Bool #

max :: Unif -> Unif -> Unif #

min :: Unif -> Unif -> Unif #

Show Unif Source # 
Instance details

Defined in RSolve.HM

Methods

showsPrec :: Int -> Unif -> ShowS #

show :: Unif -> String #

showList :: [Unif] -> ShowS #

AtomF Unif Source # 
Instance details

Defined in RSolve.HM

Methods

notA :: Unif -> [Unif] Source #

CtxSolver TCEnv Unif Source # 
Instance details

Defined in RSolve.HM

Methods

solve :: Unif -> MS TCEnv () Source #

data TCEnv Source #

Constructors

TCEnv 

Fields

Instances
Show TCEnv Source # 
Instance details

Defined in RSolve.HM

Methods

showsPrec :: Int -> TCEnv -> ShowS #

show :: TCEnv -> String #

showList :: [TCEnv] -> ShowS #

CtxSolver TCEnv Unif Source # 
Instance details

Defined in RSolve.HM

Methods

solve :: Unif -> MS TCEnv () Source #

free :: Map String T -> T -> T Source #

update :: Int -> T -> MS TCEnv () Source #

addNEq :: (T, T) -> MS TCEnv () Source #