Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
Synopsis
- type T i branch leaf = (i, Elem i branch leaf)
- data Elem i branch leaf
- map :: (branch0 -> branch1) -> (leaf0 -> leaf1) -> T i branch0 leaf0 -> T i branch1 leaf1
- mapLabel :: (i -> j) -> T i branch leaf -> T j branch leaf
- mapCond :: (branch -> Bool) -> (branch -> branch) -> (leaf -> leaf) -> T i branch leaf -> T i branch leaf
- mapSubTrees :: (branch -> Bool) -> ((branch, [T i branch leaf]) -> (branch, [T i branch leaf])) -> T i branch leaf -> T i branch leaf
- filterBranch :: (branch -> Bool) -> T i branch leaf -> [T i branch leaf]
- fold :: (i -> a -> b) -> (branch -> [b] -> a) -> (leaf -> a) -> T i branch leaf -> b
- switch :: (i -> a -> b) -> (branch -> [T i branch leaf] -> a) -> (leaf -> a) -> T i branch leaf -> b
- foldLabel :: (i -> branch -> [b] -> b) -> (i -> leaf -> b) -> T i branch leaf -> b
- foldLabelAlt :: (i -> branch -> [b] -> b) -> (i -> leaf -> b) -> T i branch leaf -> b
- switchLabel :: (i -> branch -> [T i branch leaf] -> b) -> (i -> leaf -> b) -> T i branch leaf -> b
- switchElem :: (branch -> [T i branch leaf] -> a) -> (leaf -> a) -> Elem i branch leaf -> a
- allSubTrees :: T i branch leaf -> [T i branch leaf]
- mapA :: Applicative m => (branch0 -> m branch1) -> (leaf0 -> m leaf1) -> T i branch0 leaf0 -> m (T i branch1 leaf1)
- mapCondA :: Applicative m => (branch -> Bool) -> (branch -> m branch) -> (leaf -> m leaf) -> T i branch leaf -> m (T i branch leaf)
- foldA :: Applicative m => (i -> m (a -> b)) -> (branch -> m ([b] -> a)) -> (leaf -> m a) -> T i branch leaf -> m b
- foldM :: Monad m => (i -> a -> m b) -> (branch -> [b] -> m a) -> (leaf -> m a) -> T i branch leaf -> m b
Documentation
mapCond :: (branch -> Bool) -> (branch -> branch) -> (leaf -> leaf) -> T i branch leaf -> T i branch leaf Source #
mapSubTrees :: (branch -> Bool) -> ((branch, [T i branch leaf]) -> (branch, [T i branch leaf])) -> T i branch leaf -> T i branch leaf Source #
Process the subtrees for which the predicate holds. If the predicate matches subtrees of a matching subtree, the sub-subtrees are not mapped.
switch :: (i -> a -> b) -> (branch -> [T i branch leaf] -> a) -> (leaf -> a) -> T i branch leaf -> b Source #
foldLabelAlt :: (i -> branch -> [b] -> b) -> (i -> leaf -> b) -> T i branch leaf -> b Source #
switchLabel :: (i -> branch -> [T i branch leaf] -> b) -> (i -> leaf -> b) -> T i branch leaf -> b Source #
switchElem :: (branch -> [T i branch leaf] -> a) -> (leaf -> a) -> Elem i branch leaf -> a Source #
allSubTrees :: T i branch leaf -> [T i branch leaf] Source #
mapA :: Applicative m => (branch0 -> m branch1) -> (leaf0 -> m leaf1) -> T i branch0 leaf0 -> m (T i branch1 leaf1) Source #
mapCondA :: Applicative m => (branch -> Bool) -> (branch -> m branch) -> (leaf -> m leaf) -> T i branch leaf -> m (T i branch leaf) Source #
foldA :: Applicative m => (i -> m (a -> b)) -> (branch -> m ([b] -> a)) -> (leaf -> m a) -> T i branch leaf -> m b Source #