uniplate-1.2.0.3: Uniform type generic traversals.Source codeContentsIndex
Data.Generics.UniplateOn
Contents
Types
Operations
Queries
Transformations
Other
Helper for writing instances
Description

RECOMMENDATION Use Data.Generics.UniplateStrOn instead.

This module retained Haskell 98 compatability, but users who are happy with multi-parameter type classes should look towards Data.Generics.Biplate.

The only function missing from Data.Generics.Uniplate is fold, as it can be constructed from children and has little meaning in a multi-typed setting.

All operations, apart from childrenOn should perform identically to their non On counterparts.

Synopsis
module Data.Generics.Uniplate
type BiplateType from to = from -> ([to], [to] -> from)
universeOn :: Uniplate to => BiplateType from to -> from -> [to]
childrenOn :: Uniplate to => BiplateType from to -> from -> [to]
transformOn :: Uniplate to => BiplateType from to -> (to -> to) -> from -> from
transformOnM :: (Monad m, Uniplate to) => BiplateType from to -> (to -> m to) -> from -> m from
rewriteOn :: Uniplate to => BiplateType from to -> (to -> Maybe to) -> from -> from
rewriteOnM :: (Monad m, Uniplate to) => BiplateType from to -> (to -> m (Maybe to)) -> from -> m from
descendOn :: Uniplate to => BiplateType from to -> (to -> to) -> from -> from
descendOnM :: (Monad m, Uniplate to) => BiplateType from to -> (to -> m to) -> from -> m from
holesOn :: Uniplate to => BiplateType from to -> from -> [(to, to -> from)]
contextsOn :: Uniplate to => BiplateType from to -> from -> [(to, to -> from)]
uniplateOnList :: BiplateType a b -> BiplateType [a] b
Documentation
module Data.Generics.Uniplate
Types
type BiplateType from to = from -> ([to], [to] -> from)Source

Return all the top most children of type to within from.

If from == to then this function should return the root as the single child.

Operations
Queries
universeOn :: Uniplate to => BiplateType from to -> from -> [to]Source
childrenOn :: Uniplate to => BiplateType from to -> from -> [to]Source
Return the children of a type. If to == from then it returns the original element (in contrast to children)
Transformations
transformOn :: Uniplate to => BiplateType from to -> (to -> to) -> from -> fromSource
transformOnM :: (Monad m, Uniplate to) => BiplateType from to -> (to -> m to) -> from -> m fromSource
rewriteOn :: Uniplate to => BiplateType from to -> (to -> Maybe to) -> from -> fromSource
rewriteOnM :: (Monad m, Uniplate to) => BiplateType from to -> (to -> m (Maybe to)) -> from -> m fromSource
descendOn :: Uniplate to => BiplateType from to -> (to -> to) -> from -> fromSource
descendOnM :: (Monad m, Uniplate to) => BiplateType from to -> (to -> m to) -> from -> m fromSource
Other
holesOn :: Uniplate to => BiplateType from to -> from -> [(to, to -> from)]Source
contextsOn :: Uniplate to => BiplateType from to -> from -> [(to, to -> from)]Source
Helper for writing instances
uniplateOnList :: BiplateType a b -> BiplateType [a] bSource
Used for defining instances UniplateFoo a => UniplateFoo [a]
Produced by Haddock version 2.4.2