Eval -package:fcf-family

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!
This module doesn't contains actual eval, see vimEval comment.
Cf. board-games package.
Represents a type family application.
Evaluation of SRTree expressions