A semigroup is a binary associative operation.
- class Semigroup a where
- (.++.) :: a -> a -> a
- (<++>) :: (Applicative f, Semigroup a) => f a -> f a -> f a
- newtype Max a = Max {
- runMax :: a
- newtype Min a = Min {
- runMin :: a
- newtype BoundedMax a = BoundedMax {
- runBoundedMax :: Maybe a
- newtype BoundedMin a = BoundedMin {
- runBoundedMin :: Maybe a
Documentation
A binary operation that must satisfy associativity. Unlike a Monoid
, an identity in not essential.
Semigroup Ordering | |
Semigroup () | |
Semigroup All | |
Semigroup Any | |
Semigroup ByteString | |
Semigroup IntSet | |
Semigroup [a] | |
Semigroup a => Semigroup (IO a) | |
Semigroup a => Semigroup (Dual a) | |
Semigroup (Endo a) | |
Num a => Semigroup (Sum a) | |
Num a => Semigroup (Product a) | |
Semigroup (First a) | |
Semigroup (Last a) | |
Semigroup a => Semigroup (Maybe a) | |
Semigroup (Seq a) | |
Semigroup (IntMap v) | |
Ord a => Semigroup (Set a) | |
Monoid a => Semigroup (Identity a) | |
Ord a => Semigroup (Min a) | |
Ord a => Semigroup (Max a) | |
Semigroup b => Semigroup (a -> b) | |
(Semigroup a, Semigroup b) => Semigroup (a, b) | |
Ord k => Semigroup (Map k v) | |
(Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c) | |
(Semigroup a, Semigroup b, Semigroup c, Semigroup d) => Semigroup (a, b, c, d) | |
(Semigroup a, Semigroup b, Semigroup c, Semigroup d, Semigroup e) => Semigroup (a, b, c, d, e) |
(<++>) :: (Applicative f, Semigroup a) => f a -> f a -> f aSource
A binary associative operation lifted into an applicative functor.
newtype BoundedMax a Source
BoundedMax | |
|
Eq a => Eq (BoundedMax a) | |
Ord a => Ord (BoundedMax a) | |
Read a => Read (BoundedMax a) | |
Show a => Show (BoundedMax a) | |
Ord a => Monoid (BoundedMax a) |
newtype BoundedMin a Source
BoundedMin | |
|
Eq a => Eq (BoundedMin a) | |
Ord a => Ord (BoundedMin a) | |
Read a => Read (BoundedMin a) | |
Show a => Show (BoundedMin a) | |
Ord a => Monoid (BoundedMin a) |