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: