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

EVM.Traversals

Description

 
Synopsis

Documentation

foldProp :: forall b. Monoid b => (forall a. Expr a -> b) -> b -> Prop -> b Source #

foldExpr :: forall b c. Monoid b => (forall a. Expr a -> b) -> b -> Expr c -> b Source #

Recursively folds a given function over a given expression Recursion schemes do this & a lot more, but defining them over GADT's isn't worth the hassle

mapProp :: (forall a. Expr a -> Expr a) -> Prop -> Prop Source #

mapExpr :: (forall a. Expr a -> Expr a) -> Expr b -> Expr b Source #

Recursively applies a given function to every node in a given expr instance Recursion schemes do this & a lot more, but defining them over GADT's isn't worth the hassle

mapExprM :: Monad m => (forall a. Expr a -> m (Expr a)) -> Expr b -> m (Expr b) Source #

mapPropM :: Monad m => (forall a. Expr a -> m (Expr a)) -> Prop -> m Prop Source #