GSemigroup All # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal |
GSemigroup Any # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal |
GSemigroup Void # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal |
GSemigroup Ordering # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: Ordering -> Ordering -> Ordering # gstimes :: Integral b => b -> Ordering -> Ordering # gsconcat :: NonEmpty Ordering -> Ordering # |
GSemigroup () # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal |
GSemigroup a => GSemigroup (Identity a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: Identity a -> Identity a -> Identity a # gstimes :: Integral b => b -> Identity a -> Identity a # gsconcat :: NonEmpty (Identity a) -> Identity a # |
GSemigroup (First a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: First a -> First a -> First a # gstimes :: Integral b => b -> First a -> First a # gsconcat :: NonEmpty (First a) -> First a # |
GSemigroup (Last a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: Last a -> Last a -> Last a # gstimes :: Integral b => b -> Last a -> Last a # gsconcat :: NonEmpty (Last a) -> Last a # |
GSemigroup a => GSemigroup (Down a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: Down a -> Down a -> Down a # gstimes :: Integral b => b -> Down a -> Down a # gsconcat :: NonEmpty (Down a) -> Down a # |
GSemigroup (First a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: First a -> First a -> First a # gstimes :: Integral b => b -> First a -> First a # gsconcat :: NonEmpty (First a) -> First a # |
GSemigroup (Last a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: Last a -> Last a -> Last a # gstimes :: Integral b => b -> Last a -> Last a # gsconcat :: NonEmpty (Last a) -> Last a # |
Ord a => GSemigroup (Max a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal |
Ord a => GSemigroup (Min a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal |
GMonoid m => GSemigroup (WrappedMonoid m) # | |
Instance detailsDefined in Generics.Deriving.Semigroup Methods gsappend :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m # gstimes :: Integral b => b -> WrappedMonoid m -> WrappedMonoid m # gsconcat :: NonEmpty (WrappedMonoid m) -> WrappedMonoid m # |
GSemigroup a => GSemigroup (Dual a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: Dual a -> Dual a -> Dual a # gstimes :: Integral b => b -> Dual a -> Dual a # gsconcat :: NonEmpty (Dual a) -> Dual a # |
GSemigroup (Endo a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: Endo a -> Endo a -> Endo a # gstimes :: Integral b => b -> Endo a -> Endo a # gsconcat :: NonEmpty (Endo a) -> Endo a # |
Num a => GSemigroup (Product a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: Product a -> Product a -> Product a # gstimes :: Integral b => b -> Product a -> Product a # gsconcat :: NonEmpty (Product a) -> Product a # |
Num a => GSemigroup (Sum a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal |
GSemigroup (NonEmpty a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: NonEmpty a -> NonEmpty a -> NonEmpty a # gstimes :: Integral b => b -> NonEmpty a -> NonEmpty a # gsconcat :: NonEmpty (NonEmpty a) -> NonEmpty 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 )
|
Instance detailsDefined in Generics.Deriving.Default |
GSemigroup a => GSemigroup (Maybe a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: Maybe a -> Maybe a -> Maybe a # gstimes :: Integral b => b -> Maybe a -> Maybe a # gsconcat :: NonEmpty (Maybe a) -> Maybe a # |
GSemigroup [a] # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal |
GSemigroup (Either a b) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: Either a b -> Either a b -> Either a b # gstimes :: Integral b0 => b0 -> Either a b -> Either a b # gsconcat :: NonEmpty (Either a b) -> Either a b # |
GSemigroup (Proxy s) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: Proxy s -> Proxy s -> Proxy s # gstimes :: Integral b => b -> Proxy s -> Proxy s # gsconcat :: NonEmpty (Proxy s) -> Proxy s # |
(GSemigroup a, GSemigroup b) => GSemigroup (a, b) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: (a, b) -> (a, b) -> (a, b) # gstimes :: Integral b0 => b0 -> (a, b) -> (a, b) # gsconcat :: NonEmpty (a, b) -> (a, b) # |
GSemigroup b => GSemigroup (a -> b) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: (a -> b) -> (a -> b) -> a -> b # gstimes :: Integral b0 => b0 -> (a -> b) -> a -> b # gsconcat :: NonEmpty (a -> b) -> a -> b # |
GSemigroup a => GSemigroup (Const a b) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: Const a b -> Const a b -> Const a b # gstimes :: Integral b0 => b0 -> Const a b -> Const a b # gsconcat :: NonEmpty (Const a b) -> Const a b # |
Alternative f => GSemigroup (Alt f a) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: Alt f a -> Alt f a -> Alt f a # gstimes :: Integral b => b -> Alt f a -> Alt f a # gsconcat :: NonEmpty (Alt f a) -> Alt f a # |
(GSemigroup a, GSemigroup b, GSemigroup c) => GSemigroup (a, b, c) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: (a, b, c) -> (a, b, c) -> (a, b, c) # gstimes :: Integral b0 => b0 -> (a, b, c) -> (a, b, c) # gsconcat :: NonEmpty (a, b, c) -> (a, b, c) # |
(GSemigroup a, GSemigroup b, GSemigroup c, GSemigroup d) => GSemigroup (a, b, c, d) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) # gstimes :: Integral b0 => b0 -> (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) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) # gstimes :: Integral b0 => b0 -> (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) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal Methods gsappend :: (a, b, c, d, e, f) -> (a, b, c, d, e, f) -> (a, b, c, d, e, f) # gstimes :: Integral b0 => b0 -> (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) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal 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 b0 => b0 -> (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) # | |
Instance detailsDefined in Generics.Deriving.Semigroup.Internal 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 b0 => b0 -> (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) # |