generic-data-functions-0.1.1: Familiar functions lifted to generic data types
Safe HaskellSafe-Inferred
LanguageGHC2021

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

Documentation

class GFoldMapSum m f where Source #

Methods

gFoldMapSum :: (String -> m) -> f p -> m Source #

Instances

Instances details
(TypeError ENoEmpty :: Constraint) => GFoldMapSum m (V1 :: k -> Type) Source # 
Instance details

Defined in Generic.Data.Function.FoldMap.Sum

Methods

gFoldMapSum :: forall (p :: k0). (String -> m) -> V1 p -> m Source #

GFoldMapCSum m (l :+: r) => GFoldMapSum m (l :+: r :: k -> Type) Source # 
Instance details

Defined in Generic.Data.Function.FoldMap.Sum

Methods

gFoldMapSum :: forall (p :: k0). (String -> m) -> (l :+: r) p -> m Source #

(TypeError EUnexpectedNonSum :: Constraint) => GFoldMapSum m (C1 c f :: k -> Type) Source # 
Instance details

Defined in Generic.Data.Function.FoldMap.Sum

Methods

gFoldMapSum :: forall (p :: k0). (String -> m) -> C1 c f p -> m Source #

GFoldMapSum m f => GFoldMapSum m (D1 c f :: k -> Type) Source # 
Instance details

Defined in Generic.Data.Function.FoldMap.Sum

Methods

gFoldMapSum :: forall (p :: k0). (String -> m) -> D1 c f 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

Instances details
(GFoldMapCSum m l, GFoldMapCSum m r) => GFoldMapCSum m (l :+: r :: k -> Type) Source # 
Instance details

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 # 
Instance details

Defined in Generic.Data.Function.FoldMap.Sum

Methods

gFoldMapCSum :: forall (p :: k0). (String -> m) -> C1 c f p -> m Source #