hevm-0.52.0: Symbolic EVM Evaluator
Safe HaskellSafe-Inferred
LanguageGHC2021

EVM.Stepper

Synopsis

Documentation

data Action s a where Source #

The instruction type of the operational monad

Constructors

Exec :: Action s (VMResult s)

Keep executing until an intermediate result is reached

Wait :: Query s -> Action s ()

Wait for a query to be resolved

Ask :: Choose s -> Action s ()

Multiple things can happen

EVM :: EVM s a -> Action s a

Embed a VM state transformation

IOAct :: IO a -> Action s a

Perform an IO action

type Stepper s a = Program (Action s) a Source #

Type alias for an operational monad of Action

execFully :: Stepper s (Either EvmError (Expr Buf)) Source #

Run the VM until final result, resolving all queries

run :: Stepper s (VM s) Source #

runFully :: Stepper s (VM s) Source #

Run the VM until its final state

wait :: Query s -> Stepper s () Source #

ask :: Choose s -> Stepper s () Source #

evm :: EVM s a -> Stepper s a Source #

evmIO :: IO a -> Stepper s a Source #