Maintainer | [email protected] |
---|---|
Safe Haskell | Safe-Infered |
Data.Monoid.Split
Description
Sometimes we want to accumulate values from some monoid, but have
the ability to introduce a "split" which separates values on
either side. For example, in the diagrams graphics framework this
is used when accumulating transformations to be applied to
primitive diagrams: the freeze
operation introduces a split,
since only transformations occurring outside the freeze should be
applied to attributes.
Documentation
A value of type Split m
is either a single m
, or a pair of
m
's separated by a divider.
Instances
(Semigroup m, Monoid m) => Monoid (Split m) | |
Semigroup m => Semigroup (Split m) | If |
Action m n => Action (Split m) n | By default, the action of a split monoid is the same as for the underlying monoid, as if the split were removed. |