RepLib-0.2.1: Generic programming library with representation typesSource codeContentsIndex
Data.RepLib.SYB.Schemes
Portabilitynon-portable
Stabilityexperimental
Maintainersweirich@cis.upenn.edu
Description
Derived from Data.Generics.Schemes Only modification: Data class becomes Rep class otherwise import our version of the libraries For now, missing somewhere (lacking mapMp)
Synopsis
everywhere :: (forall a. Rep a => a -> a) -> forall a. Rep a => a -> a
everywhere' :: (forall a. Rep a => a -> a) -> forall a. Rep a => a -> a
everywhereBut :: GenericQ Bool -> GenericT -> GenericT
everywhereM :: Monad m => GenericM m -> GenericM m
everything :: (r -> r -> r) -> GenericQ r -> GenericQ r
listify :: Rep r => (r -> Bool) -> GenericQ [r]
something :: GenericQ (Maybe u) -> GenericQ (Maybe u)
synthesize :: s -> (s -> s -> s) -> GenericQ (s -> s) -> GenericQ s
gsize :: Rep a => a -> Int
glength :: GenericQ Int
gdepth :: GenericQ Int
gcount :: GenericQ Bool -> GenericQ Int
gnodecount :: GenericQ Int
gtypecount :: Rep a => a -> GenericQ Int
gfindtype :: (Rep x, Rep y) => x -> Maybe y
Documentation
everywhere :: (forall a. Rep a => a -> a) -> forall a. Rep a => a -> aSource
Apply a transformation everywhere in bottom-up manner
everywhere' :: (forall a. Rep a => a -> a) -> forall a. Rep a => a -> aSource
Apply a transformation everywhere in top-down manner
everywhereBut :: GenericQ Bool -> GenericT -> GenericTSource
Variation on everywhere with an extra stop condition
everywhereM :: Monad m => GenericM m -> GenericM mSource
Monadic variation on everywhere
everything :: (r -> r -> r) -> GenericQ r -> GenericQ rSource

Apply a monadic transformation at least somewhere somewhere :: MonadPlus m => GenericM m -> GenericM m

Summarise all nodes in top-down, left-to-right order

listify :: Rep r => (r -> Bool) -> GenericQ [r]Source
Get a list of all entities that meet a predicate
something :: GenericQ (Maybe u) -> GenericQ (Maybe u)Source
Look up a subterm by means of a maybe-typed filter
synthesize :: s -> (s -> s -> s) -> GenericQ (s -> s) -> GenericQ sSource
Bottom-up synthesis of a data structure; 1st argument z is the initial element for the synthesis; 2nd argument o is for reduction of results from subterms; 3rd argument f updates the synthesised data according to the given term
gsize :: Rep a => a -> IntSource
Compute size of an arbitrary data structure
glength :: GenericQ IntSource
Count the number of immediate subterms of the given term
gdepth :: GenericQ IntSource
Determine depth of the given term
gcount :: GenericQ Bool -> GenericQ IntSource
Determine the number of all suitable nodes in a given term
gnodecount :: GenericQ IntSource
Determine the number of all nodes in a given term
gtypecount :: Rep a => a -> GenericQ IntSource
Determine the number of nodes of a given type in a given term
gfindtype :: (Rep x, Rep y) => x -> Maybe ySource
Find (unambiguously) an immediate subterm of a given type
Produced by Haddock version 2.4.2