Eval -package:yi

Eval is a Monad that makes it easier to define parallel strategies. It is a strict identity monad: that is, in
m >>= f
m is evaluated before the result is passed to f.
instance Monad Eval where
return  = Done
m >>= k = case m of
Done x -> k x
If you wanted to construct a Strategy for a pair that sparked the first component in parallel and then evaluated the second component, you could write
myStrat :: Strategy (a,b)
myStrat (a,b) = do { a' <- rpar a; b' <- rseq b; return (a',b') }
Alternatively, you could write this more compactly using the Applicative style as
myStrat (a,b) = (,) <$> rpar a <*> rseq b
Low level interface to parallel array filling operators.
Expression evaluator.
Evaluator for actions (Action, YiAction). Uses a GHCi session under the hood.
Monad for performing symbolic evaluation.
The monad of partial evaluation. The inner monad is IO, as primitive evaluation can attempt to evaluate IO actions.
A response to an eval comment
Types and functions related to Stack's eval command.
This module provides the "evaluation" part of the partial evaluator. This is implemented in the classic "eval/apply" style, with a variant of apply for performing type applications.
Warning: this is an internal module, and does not have a stable API or name. Functions in this module may not check or enforce preconditions expected by public modules. Use at your own risk!
Cf. board-games package.
Represents a type family application.
Evaluation of SRTree expressions
This module doesn't contains actual eval, see pureEval comment.