Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- foldProp :: forall b. Monoid b => (forall a. Expr a -> b) -> b -> Prop -> b
- foldEContract :: forall b. Monoid b => (forall a. Expr a -> b) -> b -> Expr EContract -> b
- foldContract :: forall b. Monoid b => (forall a. Expr a -> b) -> b -> Contract -> b
- foldCode :: forall b. Monoid b => (forall a. Expr a -> b) -> ContractCode -> b
- foldExpr :: forall b c. Monoid b => (forall a. Expr a -> b) -> b -> Expr c -> b
- mapProp :: (forall a. Expr a -> Expr a) -> Prop -> Prop
- mapProp' :: (Prop -> Prop) -> Prop -> Prop
- mapExpr :: (forall a. Expr a -> Expr a) -> Expr b -> Expr b
- mapExprM :: Monad m => (forall a. Expr a -> m (Expr a)) -> Expr b -> m (Expr b)
- mapPropM :: Monad m => (forall a. Expr a -> m (Expr a)) -> Prop -> m Prop
- mapEContractM :: Monad m => (forall a. Expr a -> m (Expr a)) -> Expr EContract -> m (Expr EContract)
- mapContractM :: Monad m => (forall a. Expr a -> m (Expr a)) -> Contract -> m Contract
- mapCodeM :: Monad m => (forall a. Expr a -> m (Expr a)) -> ContractCode -> m ContractCode
- class TraversableTerm a where
Documentation
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
mapEContractM :: Monad m => (forall a. Expr a -> m (Expr a)) -> Expr EContract -> m (Expr EContract) Source #
mapCodeM :: Monad m => (forall a. Expr a -> m (Expr a)) -> ContractCode -> m ContractCode Source #