monadiccp-0.6: Constraint ProgrammingSource codeContentsIndex
Control.CP.Herbrand.Herbrand
Description

This module provides a Herbrand solver.

The type of terms is parameterized by the HTerm type class.

Synopsis
class Ord (VarId t) => HTerm t where
type VarId t :: *
data VarSupply t :: *
varSupply :: VarSupply t
supplyVar :: VarSupply t -> (t, VarSupply t)
mkVar :: VarId t -> t
isVar :: t -> Maybe (VarId t)
children :: t -> ([t], [t] -> t)
nonvar_unify :: MonadState (HState t m) m => t -> t -> m Bool
data Herbrand t a = Herbrand {
unH :: State (HState t (Herbrand t)) a
}
failure :: Monad m => m Bool
success :: Monad m => m Bool
unify :: (HTerm t, MonadState (HState t m) m) => t -> t -> m Bool
shallow_normalize :: (HTerm t, MonadState (HState t m) m) => t -> m t
registerAction :: (HTerm t, MonadState (HState t m) m) => t -> m Bool -> m ()
data HState t m
data Unify t
initState :: HTerm t => HState t m
addH :: (HTerm t, MonadState (HState t m) m) => Unify t -> m Bool
newvarH :: (HTerm t, MonadState (HState t m) m) => m t
Documentation
class Ord (VarId t) => HTerm t whereSource
Herbrand terms
Associated Types
type VarId t :: *Source
data VarSupply t :: *Source
Methods
varSupply :: VarSupply tSource
supplyVar :: VarSupply t -> (t, VarSupply t)Source
mkVar :: VarId t -> tSource
isVar :: t -> Maybe (VarId t)Source
children :: t -> ([t], [t] -> t)Source
nonvar_unify :: MonadState (HState t m) m => t -> t -> m BoolSource
show/hide Instances
data Herbrand t a Source
Herbrand monad
Constructors
Herbrand
unH :: State (HState t (Herbrand t)) a
show/hide Instances
failure :: Monad m => m BoolSource
success :: Monad m => m BoolSource
unify :: (HTerm t, MonadState (HState t m) m) => t -> t -> m BoolSource
unify two arbitrary terms
shallow_normalize :: (HTerm t, MonadState (HState t m) m) => t -> m tSource
registerAction :: (HTerm t, MonadState (HState t m) m) => t -> m Bool -> m ()Source
data HState t m Source
show/hide Instances
data Unify t Source
initState :: HTerm t => HState t mSource
addH :: (HTerm t, MonadState (HState t m) m) => Unify t -> m BoolSource
newvarH :: (HTerm t, MonadState (HState t m) m) => m tSource
Produced by Haddock version 2.6.0