Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Generics.Deriving.Semigroup
Synopsis
- class GSemigroup a where
- gsappenddefault :: (Generic a, GSemigroup' (Rep a)) => a -> a -> a
- class GSemigroup' f where
- gsappend' :: f x -> f x -> f x
Generic semigroup class
class GSemigroup a where Source #
Minimal complete definition
Nothing
Methods
gsappend :: a -> a -> a infixr 6 Source #
gsappend :: (Generic a, GSemigroup' (Rep a)) => a -> a -> a infixr 6 Source #
gstimes :: Integral b => b -> a -> a Source #
gsconcat :: NonEmpty a -> a Source #
Only available with base-4.9
or later
Instances
GSemigroup Ordering Source # | |
GSemigroup () Source # | |
GSemigroup All Source # | |
GSemigroup Any Source # | |
GSemigroup Void Source # | |
GSemigroup [a] Source # | |
GSemigroup a => GSemigroup (Maybe a) Source # | |
GSemigroup a => GSemigroup (Down a) Source # | |
GSemigroup (NonEmpty a) Source # | |
GSemigroup (First a) Source # | |
GSemigroup (Last a) Source # | |
GSemigroup a => GSemigroup (Dual a) Source # | |
GSemigroup (Endo a) Source # | |
Num a => GSemigroup (Product a) Source # | |
Num a => GSemigroup (Sum a) Source # | |
GSemigroup a => GSemigroup (Identity a) Source # | |
GSemigroup (First a) Source # | |
GSemigroup (Last a) Source # | |
Ord a => GSemigroup (Max a) Source # | |
Ord a => GSemigroup (Min a) Source # | |
GSemigroup a => GSemigroup (Option a) Source # | |
GMonoid m => GSemigroup (WrappedMonoid m) Source # | |
(Generic a, GSemigroup' (Rep a)) => GSemigroup (Default a) Source # | Semigroups often have many sensible implementations of
In other cases, one may wish to use the existing wrapper newtypes in
newtype FirstSemigroup = FirstSemigroup |
GSemigroup b => GSemigroup (a -> b) Source # | |
GSemigroup (Either a b) Source # | |
(GSemigroup a, GSemigroup b) => GSemigroup (a, b) Source # | |
GSemigroup (Proxy s) Source # | |
(GSemigroup a, GSemigroup b, GSemigroup c) => GSemigroup (a, b, c) Source # | |
GSemigroup a => GSemigroup (Const a b) Source # | |
Alternative f => GSemigroup (Alt f a) Source # | |
(GSemigroup a, GSemigroup b, GSemigroup c, GSemigroup d) => GSemigroup (a, b, c, d) Source # | |
(GSemigroup a, GSemigroup b, GSemigroup c, GSemigroup d, GSemigroup e) => GSemigroup (a, b, c, d, e) Source # | |
(GSemigroup a, GSemigroup b, GSemigroup c, GSemigroup d, GSemigroup e, GSemigroup f) => GSemigroup (a, b, c, d, e, f) Source # | |
(GSemigroup a, GSemigroup b, GSemigroup c, GSemigroup d, GSemigroup e, GSemigroup f, GSemigroup g) => GSemigroup (a, b, c, d, e, f, g) Source # | |
Defined in Generics.Deriving.Semigroup | |
(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) Source # | |
Defined in Generics.Deriving.Semigroup |
Default definition
gsappenddefault :: (Generic a, GSemigroup' (Rep a)) => a -> a -> a infixr 6 Source #
Internal semigroup class
class GSemigroup' f where Source #
Instances
GSemigroup' (U1 :: k -> Type) Source # | |
Defined in Generics.Deriving.Semigroup | |
(GSemigroup' f, GSemigroup' g) => GSemigroup' (f :*: g :: k -> Type) Source # | |
Defined in Generics.Deriving.Semigroup | |
GSemigroup a => GSemigroup' (K1 i a :: k -> Type) Source # | |
Defined in Generics.Deriving.Semigroup | |
GSemigroup' f => GSemigroup' (M1 i c f :: k -> Type) Source # | |
Defined in Generics.Deriving.Semigroup |