Safe Haskell | None |
---|---|
Language | Haskell2010 |
LibRISCV.Effects.Expressions.Language
Description
Implements an effect for evaluation of the Expr
abstraction.
Synopsis
- data ExprEval v r where
- eval :: forall v (effs :: [Type -> Type]). Member (ExprEval v) effs => Expr v -> Eff effs v
- defaultEval :: forall (m :: Type -> Type) v. MonadIO m => (v -> Bool, Expr v -> v) -> ExprEval v ~> m
- ifExprM :: forall v (r :: [Type -> Type]) v'. Member (ExprEval v) r => Expr v -> Eff r v' -> Eff r v' -> Eff r v'
- whenExprM :: forall v (r :: [Type -> Type]). Member (ExprEval v) r => Expr v -> Eff r () -> Eff r ()
- unlessExprM :: forall v (r :: [Type -> Type]). Member (ExprEval v) r => Expr v -> Eff r () -> Eff r ()
Documentation
eval :: forall v (effs :: [Type -> Type]). Member (ExprEval v) effs => Expr v -> Eff effs v Source #
defaultEval :: forall (m :: Type -> Type) v. MonadIO m => (v -> Bool, Expr v -> v) -> ExprEval v ~> m Source #
ifExprM :: forall v (r :: [Type -> Type]) v'. Member (ExprEval v) r => Expr v -> Eff r v' -> Eff r v' -> Eff r v' Source #
Like ifM
but with internal expression evaluation.