Maintainer  bastiaan.heeren@ou.nl 

Stability  provisional 
Portability  portable (depends on ghc) 
Safe Haskell  None 
Language  Haskell98 
This module defines the constraint data types. We differentiate between two constraint types:
 Node constraint
 regular constraint
The regular constraint consists of a set of identifiers
and a function that consumes some type a
and produces a Result
.
The set of identifiers come from combining constraints using the connectives
defined in Connectives.
A Node constraint is simply a product of a Node Bool (the node) and a regular constraint. The constraint then corresponds to a node in one of the networks.
Synopsis
 data NodeConstraint b m a = NodeConstraint {
 getNode :: Node b
 getConstraint :: Constraint m a
 data Constraint m a = Constraint {}
 giveNode :: Node b > Constraint m a > NodeConstraint b m a
 makeNodeConstraint :: Node b > (a > m Result) > NodeConstraint b m a
 combinePredicates :: (a > EvBuilder Result) > (a > EvBuilder Result) > a > EvBuilder Result
Documentation
data NodeConstraint b m a Source #
Wraps over a constraint by giving it a specific node
NodeConstraint  

data Constraint m a Source #
Models constraints that have an identifier and describe predicates that produce a result
Instances
Semigroup (Constraint EvBuilder a) Source #  
Defined in Recognize.Model.Constraint (<>) :: Constraint EvBuilder a > Constraint EvBuilder a > Constraint EvBuilder a # sconcat :: NonEmpty (Constraint EvBuilder a) > Constraint EvBuilder a # stimes :: Integral b => b > Constraint EvBuilder a > Constraint EvBuilder a #  
Monoid (Constraint EvBuilder a) Source #  
Defined in Recognize.Model.Constraint mempty :: Constraint EvBuilder a # mappend :: Constraint EvBuilder a > Constraint EvBuilder a > Constraint EvBuilder a # mconcat :: [Constraint EvBuilder a] > Constraint EvBuilder a # 
giveNode :: Node b > Constraint m a > NodeConstraint b m a Source #
Couple a constraint to a specific Node
makeNodeConstraint :: Node b > (a > m Result) > NodeConstraint b m a Source #
Makes a nodeconstraint: