cooked-validators
Safe HaskellSafe-Inferred
LanguageHaskell2010

Cooked.Staged

Description

This module exposes a simple notion of a Staged computation (or a freer monad) to be used when modifying mockchain runs with Ltl formulas.

Synopsis

Documentation

data Staged (op :: Type -> Type) :: Type -> Type where Source #

The freer monad on op. We think of this as the AST of a computation with operations of types op a.

Constructors

Return :: a -> Staged op a 
Instr :: op a -> (a -> Staged op b) -> Staged op b 

Instances

Instances details
MonadFail StagedMockChain Source # 
Instance details

Defined in Cooked.MockChain.Staged

Methods

fail :: String -> StagedMockChain a #

Alternative StagedMockChain Source # 
Instance details

Defined in Cooked.MockChain.Staged

MonadPlus StagedMockChain Source # 
Instance details

Defined in Cooked.MockChain.Staged

MonadBlockChain StagedMockChain Source # 
Instance details

Defined in Cooked.MockChain.Staged

MonadBlockChainBalancing StagedMockChain Source # 
Instance details

Defined in Cooked.MockChain.Staged

MonadBlockChainWithoutValidation StagedMockChain Source # 
Instance details

Defined in Cooked.MockChain.Staged

MonadError MockChainError StagedMockChain Source # 
Instance details

Defined in Cooked.MockChain.Staged

MonadLtl modification (StagedLtl modification builtin) Source # 
Instance details

Defined in Cooked.Ltl

Methods

modifyLtl :: Ltl modification -> StagedLtl modification builtin a -> StagedLtl modification builtin a Source #

Applicative (Staged op) Source # 
Instance details

Defined in Cooked.Staged

Methods

pure :: a -> Staged op a #

(<*>) :: Staged op (a -> b) -> Staged op a -> Staged op b #

liftA2 :: (a -> b -> c) -> Staged op a -> Staged op b -> Staged op c #

(*>) :: Staged op a -> Staged op b -> Staged op b #

(<*) :: Staged op a -> Staged op b -> Staged op a #

Functor (Staged op) Source # 
Instance details

Defined in Cooked.Staged

Methods

fmap :: (a -> b) -> Staged op a -> Staged op b #

(<$) :: a -> Staged op b -> Staged op a #

Monad (Staged op) Source # 
Instance details

Defined in Cooked.Staged

Methods

(>>=) :: Staged op a -> (a -> Staged op b) -> Staged op b #

(>>) :: Staged op a -> Staged op b -> Staged op b #

return :: a -> Staged op a #

interpStaged :: Monad m => (forall a. op a -> m a) -> forall a. Staged op a -> m a Source #

Interprets a staged computation given a interpreter of the builtins