Class of Abelian monoids with monus.
The monus operation <\> is a synonym for both stripPrefixOverlap and stripSuffixOverlap, which must be equivalent as <> is both associative and commutative:
(<\>) = flip stripPrefixOverlap
(<\>) = flip stripSuffixOverlapIn addition, the monus operation <\> must satisfy the following laws:
a <\> a == mempty
mempty <\> a == mempty
a <> (b <\> a) == b <> (a <\> b)
(a <\> b) <\> c == a <\> (b <> c)
Methods
(<\>) :: m -> m -> minfix 5
Instances12Monus, …
Monus IntSetDefined in monoid-subclasses-1.2.6.1 · Data.Monoid.MonusO(m+n)
Monus ()Defined in monoid-subclasses-1.2.6.1 · Data.Monoid.MonusO(1)
Ord a => Monus (Set a)Defined in monoid-subclasses-1.2.6.1 · Data.Monoid.MonusO(m*log(nm + 1)), m <= n/
Monus (Product Natural)Defined in monoid-subclasses-1.2.6.1 · Data.Monoid.MonusO(1)
Monus (Sum Natural)Defined in monoid-subclasses-1.2.6.1 · Data.Monoid.MonusO(1)
Monus a => Monus (Identity a)Defined in monoid-subclasses-1.2.6.1 · Data.Monoid.MonusMonus a => Monus (Dual a)Defined in monoid-subclasses-1.2.6.1 · Data.Monoid.Monus(Monus a, MonoidNull a) => Monus (Maybe a)Defined in monoid-subclasses-1.2.6.1 · Data.Monoid.Monus(Monus a, Monus b) => Monus (a, b)Defined in monoid-subclasses-1.2.6.1 · Data.Monoid.MonusMonus a => Monus (Const a b)Defined in monoid-subclasses-1.2.6.1 · Data.Monoid.Monus(Monus a, Monus b, Monus c) => Monus (a, b, c)Defined in monoid-subclasses-1.2.6.1 · Data.Monoid.Monus(Monus a, Monus b, Monus c, Monus d) => Monus (a, b, c, d)Defined in monoid-subclasses-1.2.6.1 · Data.Monoid.Monus