Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- foldProp :: forall b. Monoid b => (forall a. Expr a -> b) -> b -> Prop -> 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
- 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
- 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
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