rose-0.9.5.1: Bindings for the ROSE compilerContentsIndex
Data.DataMc
Description

The DataMc class is similar to the standard scrap-your-boilerplate Data.Data.Data class, but with two additional constraints:

1. All data must be constructed using a particular user-defined data type with a single arbitrary argument.

2. The data structure must be traversed using a specific monad.

Other than this, the class behaves very much like the standard SYB design pattern.

Synopsis
class Typeable a => DataMc m c a where
gmapMc :: (forall d. DataMc m c d => c d -> m (c d)) -> c a -> m (c a)
gmapMqc :: (forall d. DataMc m c d => c d -> m r) -> c a -> m [r]
type GenericMc m c = forall a. DataMc m c a => c a -> m (c a)
type GenericMqc m r c = forall a. DataMc m c a => c a -> m r
everywhereMc :: Monad m => GenericMc m c -> GenericMc m c
everythingMc :: Monad m => (r -> r -> r) -> GenericMqc m r c -> GenericMqc m r c
Documentation
class Typeable a => DataMc m c a where
The class itself. Here m is the monad, c the data type and a the type arguemnt
Methods
gmapMc :: (forall d. DataMc m c d => c d -> m (c d)) -> c a -> m (c a)
Generic mapping function for transformations.
gmapMqc :: (forall d. DataMc m c d => c d -> m r) -> c a -> m [r]
Generic mapping function for queries.
show/hide Instances
type GenericMc m c = forall a. DataMc m c a => c a -> m (c a)
type GenericMqc m r c = forall a. DataMc m c a => c a -> m r
everywhereMc :: Monad m => GenericMc m c -> GenericMc m c
Type extension for transformations. Acts similarly to Data.Generics.Schemes.everywhere
everythingMc :: Monad m => (r -> r -> r) -> GenericMqc m r c -> GenericMqc m r c
Type extension for queries. Acts similarly to Data.Generics.Schemes.everything
Produced by Haddock version 2.4.2