monadiccp-0.4.1: Package for Constraint Programming

Control.CP.Herbrand.HerbrandT

Description

This module provides a Herbrand solver as a monad transformer.

The constraints offered are Either (Unify t) (Constraint m) where m is the transformed solver. Hence, both unification and the underlying solver's constraints are available.

The terms offered are L t1 where t1 is the Herbrand solver's terms and R t2 where t2 are the underlying solver's types.

Documentation

newtype HerbrandT t m a Source

Constructors

HerbrandT 

Fields

unHT :: StateT (HState t) m a
 

Instances

MonadTrans (HerbrandT t) 
Monad m => MonadState (HState t) (HerbrandT t m) 
Monad m => Monad (HerbrandT t m) 
(Solver s, HTerm t) => Solver (HerbrandT t s) 
(HTerm t, Solver s, Term s st) => Term (HerbrandT t s) (R st) 
(HTerm t, Solver s) => Term (HerbrandT t s) (L t) 

data L a Source

Constructors

L a 

Instances

(HTerm t, Solver s) => Term (HerbrandT t s) (L t) 

data R a Source

Constructors

R a 

Instances

(HTerm t, Solver s, Term s st) => Term (HerbrandT t s) (R st)