hevm-0.50.4: 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 #

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

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 #

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

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

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

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

Functor (DB k v) Source # 
Instance details

Defined in EVM.Patricia

Methods

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

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

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 #

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

return :: a -> DB k v a #

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

Methods

showsPrec :: Int -> Ref -> ShowS #

show :: Ref -> String #

showList :: [Ref] -> ShowS #

Eq Ref Source # 
Instance details

Defined in EVM.Patricia

Methods

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

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

data Node Source #

Instances

Instances details
Show Node Source # 
Instance details

Defined in EVM.Patricia

Methods

showsPrec :: Int -> Node -> ShowS #

show :: Node -> String #

showList :: [Node] -> ShowS #

Eq Node Source # 
Instance details

Defined in EVM.Patricia

Methods

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

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

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 #