| GSemigroup Ordering # | |
|
| GSemigroup () # | |
|
| GSemigroup Void # | |
|
| GSemigroup All # | |
|
| GSemigroup Any # | |
|
| GSemigroup [a] # | |
|
| GSemigroup a => GSemigroup (Maybe a) # | |
|
| GSemigroup a => GSemigroup (Identity a) # | |
|
| Ord a => GSemigroup (Min a) # | |
|
| Ord a => GSemigroup (Max a) # | |
|
| GSemigroup (First a) # | |
|
| GSemigroup (Last a) # | |
|
| GMonoid m => GSemigroup (WrappedMonoid m) # | |
|
| GSemigroup a => GSemigroup (Option a) # | |
|
| GSemigroup (NonEmpty a) # | |
|
| GSemigroup a => GSemigroup (Dual a) # | |
|
| GSemigroup (Endo a) # | |
|
| Num a => GSemigroup (Sum a) # | |
|
| Num a => GSemigroup (Product a) # | |
|
| GSemigroup (First a) # | |
|
| GSemigroup (Last a) # | |
|
| GSemigroup a => GSemigroup (Down a) # | |
|
| (Generic a, GSemigroup' * (Rep a)) => GSemigroup (Default a) # | Semigroups often have many sensible implementations of
<> / gsappend, and therefore no sensible default.
Indeed, there is no GSemigroup' instance for representations of sum
types. In other cases, one may wish to use the existing wrapper newtypes in
base, such as the following (using First): newtype FirstSemigroup = FirstSemigroup Bool
deriving stock (Eq, Show)
deriving (GSemigroup) via (First Bool)
|
|
| GSemigroup b => GSemigroup (a -> b) # | |
|
| GSemigroup (Either a b) # | |
|
| (GSemigroup a, GSemigroup b) => GSemigroup (a, b) # | |
|
| GSemigroup (Proxy k s) # | |
|
| (GSemigroup a, GSemigroup b, GSemigroup c) => GSemigroup (a, b, c) # | |
Methods gsappend :: (a, b, c) -> (a, b, c) -> (a, b, c) # gstimes :: Integral b => b -> (a, b, c) -> (a, b, c) # gsconcat :: NonEmpty (a, b, c) -> (a, b, c) # |
| GSemigroup a => GSemigroup (Const k a b) # | |
|
| Alternative f => GSemigroup (Alt * f a) # | |
|
| (GSemigroup a, GSemigroup b, GSemigroup c, GSemigroup d) => GSemigroup (a, b, c, d) # | |
Methods gsappend :: (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) # gstimes :: Integral b => b -> (a, b, c, d) -> (a, b, c, d) # gsconcat :: NonEmpty (a, b, c, d) -> (a, b, c, d) # |
| (GSemigroup a, GSemigroup b, GSemigroup c, GSemigroup d, GSemigroup e) => GSemigroup (a, b, c, d, e) # | |
Methods gsappend :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) # gstimes :: Integral b => b -> (a, b, c, d, e) -> (a, b, c, d, e) # gsconcat :: NonEmpty (a, b, c, d, e) -> (a, b, c, d, e) # |
| (GSemigroup a, GSemigroup b, GSemigroup c, GSemigroup d, GSemigroup e, GSemigroup f) => GSemigroup (a, b, c, d, e, f) # | |
Methods gsappend :: (a, b, c, d, e, f) -> (a, b, c, d, e, f) -> (a, b, c, d, e, f) # gstimes :: Integral b => b -> (a, b, c, d, e, f) -> (a, b, c, d, e, f) # gsconcat :: NonEmpty (a, b, c, d, e, f) -> (a, b, c, d, e, f) # |
| (GSemigroup a, GSemigroup b, GSemigroup c, GSemigroup d, GSemigroup e, GSemigroup f, GSemigroup g) => GSemigroup (a, b, c, d, e, f, g) # | |
Methods gsappend :: (a, b, c, d, e, f, g) -> (a, b, c, d, e, f, g) -> (a, b, c, d, e, f, g) # gstimes :: Integral b => b -> (a, b, c, d, e, f, g) -> (a, b, c, d, e, f, g) # gsconcat :: NonEmpty (a, b, c, d, e, f, g) -> (a, b, c, d, e, f, g) # |
| (GSemigroup a, GSemigroup b, GSemigroup c, GSemigroup d, GSemigroup e, GSemigroup f, GSemigroup g, GSemigroup h) => GSemigroup (a, b, c, d, e, f, g, h) # | |
Methods gsappend :: (a, b, c, d, e, f, g, h) -> (a, b, c, d, e, f, g, h) -> (a, b, c, d, e, f, g, h) # gstimes :: Integral b => b -> (a, b, c, d, e, f, g, h) -> (a, b, c, d, e, f, g, h) # gsconcat :: NonEmpty (a, b, c, d, e, f, g, h) -> (a, b, c, d, e, f, g, h) # |