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

EVM.Patricia

Documentation

data KV k v a Source #

Constructors

Put k v a 
Get k (v -> a) 

Instances

Instances details
Functor (KV k v) Source # 
Instance details

Defined in EVM.Patricia

Methods

fmap :: (a -> b) -> KV k v a -> KV k v b Source #

(<$) :: a -> KV k v b -> KV k v a Source #

newtype DB k v a Source #

Constructors

DB (Free (KV k v) a) 

Instances

Instances details
Show (NodeDB Node) Source # 
Instance details

Defined in EVM.Patricia

Applicative (DB k v) Source # 
Instance details

Defined in EVM.Patricia

Methods

pure :: a -> DB k v a Source #

(<*>) :: DB k v (a -> b) -> DB k v a -> DB k v b Source #

liftA2 :: (a -> b -> c) -> DB k v a -> DB k v b -> DB k v c Source #

(*>) :: DB k v a -> DB k v b -> DB k v b Source #

(<*) :: DB k v a -> DB k v b -> DB k v a Source #

Functor (DB k v) Source # 
Instance details

Defined in EVM.Patricia

Methods

fmap :: (a -> b) -> DB k v a -> DB k v b Source #

(<$) :: a -> DB k v b -> DB k v a Source #

Monad (DB k v) Source # 
Instance details

Defined in EVM.Patricia

Methods

(>>=) :: DB k v a -> (a -> DB k v b) -> DB k v b Source #

(>>) :: DB k v a -> DB k v b -> DB k v b Source #

return :: a -> DB k v a Source #

insertDB :: k -> v -> DB k v () Source #

lookupDB :: k -> DB k v v Source #

runDB Source #

Arguments

:: Monad m 
=> (k -> v -> m ())

The put function for our desired monad

-> (k -> m v)

The get function for the same monad

-> DB k v a

The puts and gets to execute

-> m a 

type Path = [Nibble] Source #

data Ref Source #

Constructors

Hash ByteString 
Literal Node 

Instances

Instances details
Show Ref Source # 
Instance details

Defined in EVM.Patricia

Eq Ref Source # 
Instance details

Defined in EVM.Patricia

Methods

(==) :: Ref -> Ref -> Bool Source #

(/=) :: Ref -> Ref -> Bool Source #

data Node Source #

Instances

Instances details
Show Node Source # 
Instance details

Defined in EVM.Patricia

Eq Node Source # 
Instance details

Defined in EVM.Patricia

Methods

(==) :: Node -> Node -> Bool Source #

(/=) :: Node -> Node -> Bool Source #

Show (NodeDB Node) Source # 
Instance details

Defined in EVM.Patricia

type MapDB k v a = StateT (Map k v) Maybe a Source #

runMapDB :: Ord k => DB k v a -> MapDB k v a Source #