classyplate-0.3.2.0: Fuseable type-class based generics

Safe HaskellNone
LanguageHaskell2010

Data.Generics.ClassyPlate.Core

Synopsis

Documentation

class GoodOperationFor c b => ClassyPlate c b Source #

A class for traversals that use a polymorphic function to visit all applicable elements.

Minimal complete definition

bottomUp_, bottomUpM_, descend_, descendM_, topDown_, topDownM_

class GoodOperationForAuto c b => SmartClassyPlate c (sel :: Bool) b Source #

A class for traversals that use a polymorphic function to visit all applicable elements but only visit the parts where the applicable elements could be found.

Minimal complete definition

smartTraverse_, smartTraverseM_

Instances
GoodOperationForAuto c b => SmartClassyPlate c True b Source # 
Instance details

Defined in Data.Generics.ClassyPlate.Core

Methods

smartTraverse_ :: FlagToken True -> ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> a) -> b -> b Source #

smartTraverseM_ :: Monad m => FlagToken True -> ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> m a) -> b -> m b Source #

bottomUp_ :: ClassyPlate c b => ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> a) -> b -> b Source #

bottomUpM_ :: (ClassyPlate c b, Monad m) => ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> m a) -> b -> m b Source #

smartTraverse_ :: SmartClassyPlate c sel b => FlagToken sel -> ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> a) -> b -> b Source #

smartTraverseM_ :: (SmartClassyPlate c sel b, Monad m) => FlagToken sel -> ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> m a) -> b -> m b Source #

descend_ :: ClassyPlate c b => ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> a) -> b -> b Source #

descendM_ :: (ClassyPlate c b, Monad m) => ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> m a) -> b -> m b Source #

topDown_ :: ClassyPlate c b => ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> a) -> b -> b Source #

topDownM_ :: (ClassyPlate c b, Monad m) => ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> m a) -> b -> m b Source #

app :: App flag c b => FlagToken flag -> ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> a) -> b -> b Source #

appM :: (App flag c b, Monad m) => FlagToken flag -> ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> m a) -> b -> m b Source #

appTD :: App flag c b => FlagToken flag -> ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> a) -> (b -> b) -> b -> b Source #

appTDM :: (App flag c b, Monad m) => FlagToken flag -> ClsToken c -> (forall a. (ClassyPlate c a, c a) => a -> m a) -> (b -> m b) -> b -> m b Source #

type GoodOperationFor c e = App (AppSelector c e) c e Source #

data FlagToken (c :: Bool) Source #

data ClsToken (c :: * -> Constraint) Source #