reducers-3.0.0.2: Semigroups, specialized containers and a general map/reduce framework

Data.Semigroup.Union

Synopsis

# Unions of Containers

class HasUnion f whereSource

A Container suitable for the `Union` `Monoid`

Methods

union :: f -> f -> fSource

Instances

 HasUnion IntSet Eq a => HasUnion [a] HasUnion (IntMap a) Ord a => HasUnion (Set a) (Eq a, Hashable a) => HasUnion (HashSet a) Ord k => HasUnion (Map k a) (Eq k, Hashable k) => HasUnion (HashMap k a)

class HasUnion f => HasUnion0 f whereSource

Methods

empty :: fSource

Instances

 HasUnion0 IntSet (HasUnion [a], Eq a) => HasUnion0 [a] HasUnion (IntMap a) => HasUnion0 (IntMap a) (HasUnion (Set a), Ord a) => HasUnion0 (Set a) (HasUnion (HashSet a), Eq a, Hashable a) => HasUnion0 (HashSet a) (HasUnion (Map k a), Ord k) => HasUnion0 (Map k a) (HasUnion (HashMap k a), Eq k, Hashable k) => HasUnion0 (HashMap k a)

newtype Union f Source

The `Monoid` `(union,empty)`

Constructors

 Union FieldsgetUnion :: f

Instances

 Functor Union Foldable Union Traversable Union Traversable1 Union Foldable1 Union (Semigroup (Union f), HasUnion f) => Reducer f (Union f) Eq f => Eq (Union f) (Eq (Union f), Ord f) => Ord (Union f) Read f => Read (Union f) Show f => Show (Union f) HasUnion0 f => Monoid (Union f) HasUnion f => Semigroup (Union f)

# Unions of Containers of Semigroups

class Functor f => HasUnionWith f whereSource

Polymorphic containers that we can supply an operation to handle unions with

Methods

unionWith :: (a -> a -> a) -> f a -> f a -> f aSource

Instances

 HasUnionWith IntMap (Functor (Map k), Ord k) => HasUnionWith (Map k)

class HasUnionWith f => HasUnionWith0 f whereSource

Methods

emptyWith :: f aSource

Instances

 HasUnionWith0 IntMap (HasUnionWith (Map k), Ord k) => HasUnionWith0 (Map k)

newtype UnionWith f m Source

The `Monoid` `('unionWith mappend',empty)` for containers full of monoids.

Constructors

 UnionWith FieldsgetUnionWith :: f m

Instances

 (Semigroup (UnionWith f m), HasUnionWith f, Semigroup m, Monoid m) => Reducer (f m) (UnionWith f m) (HasUnionWith0 f, Monoid m) => Monoid (UnionWith f m) (HasUnionWith f, Semigroup m) => Semigroup (UnionWith f m)