hevm-0.50.1: Ethereum virtual machine evaluator
Safe HaskellSafe-Inferred
LanguageGHC2021

EVM.Stepper

Synopsis

Documentation

data Action a where Source #

The instruction type of the operational monad

Constructors

Exec :: Action VMResult

Keep executing until an intermediate result is reached

Run :: Action VM

Keep executing until an intermediate state is reached

Wait :: Query -> Action ()

Wait for a query to be resolved

Ask :: Choose -> Action ()

Multiple things can happen

EVM :: EVM a -> Action a

Embed a VM state transformation

IOAct :: StateT VM IO a -> Action a

Perform an IO action

type Stepper a = Program Action a Source #

Type alias for an operational monad of Action

execFully :: Stepper (Either Error (Expr Buf)) Source #

Run the VM until final result, resolving all queries

runFully :: Stepper VM Source #

Run the VM until its final state

evm :: EVM a -> Stepper a Source #