uniplate-1.6.12: Help writing simple, concise and fast generic operations.

Safe HaskellNone
LanguageHaskell98

Data.Generics.Biplate

Contents

Description

DEPRECATED: Use Data.Generics.Uniplate.Operations instead.

Requires multi-parameter type classes, so is no longer Haskell 98. These operations are easier to use and construct than the equivalent Data.Generics.UniplateStrOn methods, but perform the same operation.

It is recommended that instead of importing this module, you import one of the following modules, to construct instances:

Synopsis

Documentation

The Class

class Uniplate to => Biplate from to where Source

Children are defined as the top-most items of type to starting at the root.

Methods

biplate :: BiplateType from to Source

Instances

(Typeable * a, Typeable * b, Uniplate b, PlateAll a b) => Biplate a b 
(Data a, Data b, Uniplate b, Typeable * a, Typeable * b) => Biplate a b 

biplateList :: Biplate from to => from -> ([to], [to] -> from) Source

Compatibility method, for direct users of the biplate function

The Operations

Queries

universeBi :: Biplate from to => from -> [to] Source

childrenBi :: Biplate from to => from -> [to] Source

Transformations

transformBi :: Biplate from to => (to -> to) -> from -> from Source

transformBiM :: (Monad m, Biplate from to) => (to -> m to) -> from -> m from Source

rewriteBi :: Biplate from to => (to -> Maybe to) -> from -> from Source

rewriteBiM :: (Monad m, Biplate from to) => (to -> m (Maybe to)) -> from -> m from Source

descendBi :: Biplate from to => (to -> to) -> from -> from Source

descendBiM :: (Monad m, Biplate from to) => (to -> m to) -> from -> m from Source

Others

contextsBi :: Biplate from to => from -> [(to, to -> from)] Source

holesBi :: Biplate from to => from -> [(to, to -> from)] Source