Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Generic.Data.Function.FoldMap.Sum
Description
foldMap
for sum types where constructors are encoded by mapping the
constructor name.
Note that constructor names are unique per type. So as long as your mapping
function similarly outputs unique values of your monoid for each constructor,
you should be able to "reverse" the process (e.g. for generic traverse
).
Synopsis
- class GFoldMapSum (opts :: SumOpts) m f where
- gFoldMapSum :: (String -> m) -> f p -> m
- class GFoldMapCSum m f where
- gFoldMapCSum :: (String -> m) -> f p -> m
Documentation
class GFoldMapSum (opts :: SumOpts) m f where Source #
Methods
gFoldMapSum :: (String -> m) -> f p -> m Source #
Instances
GFoldMapSum opts m (V1 :: k -> Type) Source # | |
Defined in Generic.Data.Function.FoldMap.Sum Methods gFoldMapSum :: forall (p :: k0). (String -> m) -> V1 p -> m Source # | |
GFoldMapCSum m (C1 c f) => GFoldMapSum 'AllowSingletonSum m (C1 c f :: k -> Type) Source # | |
Defined in Generic.Data.Function.FoldMap.Sum Methods gFoldMapSum :: forall (p :: k0). (String -> m) -> C1 c f p -> m Source # | |
GFoldMapSum 'SumOnly m (C1 c f :: k -> Type) Source # | |
Defined in Generic.Data.Function.FoldMap.Sum Methods gFoldMapSum :: forall (p :: k0). (String -> m) -> C1 c f p -> m Source # | |
GFoldMapCSum m (l :+: r) => GFoldMapSum opts m (l :+: r :: k -> Type) Source # | |
Defined in Generic.Data.Function.FoldMap.Sum Methods gFoldMapSum :: forall (p :: k0). (String -> m) -> (l :+: r) p -> m Source # |
class GFoldMapCSum m f where Source #
Sum type handler prefixing constructor contents with their mapped
constructor name via a provided String -> m
.
TODO rename
Methods
gFoldMapCSum :: (String -> m) -> f p -> m Source #
Instances
(GFoldMapCSum m l, GFoldMapCSum m r) => GFoldMapCSum m (l :+: r :: k -> Type) Source # | |
Defined in Generic.Data.Function.FoldMap.Sum Methods gFoldMapCSum :: forall (p :: k0). (String -> m) -> (l :+: r) p -> m Source # | |
(Semigroup m, Constructor c, GFoldMapC m f) => GFoldMapCSum m (C1 c f :: k -> Type) Source # | |
Defined in Generic.Data.Function.FoldMap.Sum Methods gFoldMapCSum :: forall (p :: k0). (String -> m) -> C1 c f p -> m Source # |