monadiccp-0.4.1: Package for Constraint Programming

Control.CP.Herbrand.Herbrand

Documentation

class HTerm t whereSource

Methods

mkVar :: VarId -> tSource

isVar :: t -> Maybe VarIdSource

children :: t -> ([t], [t] -> t)Source

nonvar_unify :: MonadState (HState t) m => t -> t -> m BoolSource

Instances

newtype Herbrand t a Source

Constructors

Herbrand 

Fields

unH :: State (HState t) a
 

type Subst t = Map VarId tSource

data HState t Source

Constructors

HState 

Fields

var_supply :: VarId
 
subst :: Subst t
 

Instances

updateState :: (HTerm t, MonadState (HState t) m) => (HState t -> HState t) -> m ()Source

newvarH :: (HTerm t, MonadState (HState t) m) => m tSource

data Unify t Source

Constructors

t Unify t 

addH :: (HTerm t, MonadState (HState t) m) => Unify t -> m BoolSource

unify :: (HTerm t, MonadState (HState t) m) => t -> t -> m BoolSource

bind :: (HTerm t, MonadState (HState t) m) => VarId -> t -> m ()Source

normalize :: (HTerm t, MonadState (HState t) m) => t -> m tSource