- genUniverseBi :: Name -> Q Exp
- genUniverseBiT :: [TypeQ] -> Name -> Q Exp
- genTransformBi :: Name -> Q Exp
- genTransformBiT :: [TypeQ] -> Name -> Q Exp
- genTransformBiM :: Name -> Q Exp
- genTransformBiMT :: [TypeQ] -> Name -> Q Exp
- class UniverseBi s t where
- universeBi :: s -> [t]
- universe :: UniverseBi a a => a -> [a]
- instanceUniverseBi :: TypeQ -> TypeQ -> Q [Dec]
- instanceUniverseBiT :: [TypeQ] -> TypeQ -> TypeQ -> Q [Dec]
- class TransformBi s t where
- transformBi :: (s -> s) -> t -> t
- transform :: TransformBi a a => (a -> a) -> a -> a
- instanceTransformBi :: TypeQ -> TypeQ -> Q [Dec]
- instanceTransformBiT :: [TypeQ] -> TypeQ -> TypeQ -> Q [Dec]
- class TransformBiM m s t where
- transformBiM :: (s -> m s) -> t -> m t
- transformM :: TransformBiM m a a => (a -> m a) -> a -> m a
- instanceTransformBiM :: TypeQ -> TypeQ -> TypeQ -> Q [Dec]
- instanceTransformBiMT :: [TypeQ] -> TypeQ -> TypeQ -> TypeQ -> Q [Dec]
Documentation
genUniverseBi :: Name -> Q ExpSource
Generate TH code for a function that extracts all subparts of a certain type.
The argument to genUniverseBi
is a name with the type S -> [T]
, for some types
S
and T
. The function will extract all subparts of type T
from S
.
genUniverseBiT :: [TypeQ] -> Name -> Q ExpSource
Same as genUniverseBi
, but does not look inside any types mention in the
list of types.
genTransformBi :: Name -> Q ExpSource
Generate TH code for a function that transforms all subparts of a certain type.
The argument to genTransformBi
is a name with the type (S->S) -> T -> T
, for some types
S
and T
. The function will transform all subparts of type S
inside T
using the given function.
genTransformBiT :: [TypeQ] -> Name -> Q ExpSource
Same as genTransformBi
, but does not look inside any types mention in the
list of types.
genTransformBiM :: Name -> Q ExpSource
class UniverseBi s t whereSource
universeBi :: s -> [t]Source
universe :: UniverseBi a a => a -> [a]Source
class TransformBi s t whereSource
transformBi :: (s -> s) -> t -> tSource
transform :: TransformBi a a => (a -> a) -> a -> aSource
class TransformBiM m s t whereSource
transformBiM :: (s -> m s) -> t -> m tSource
transformM :: TransformBiM m a a => (a -> m a) -> a -> m aSource