|
|
|
| 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 |
|
|
|
| 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.
|
| | 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 |