Distribution.Compat.Semigroup

Cabal-2.4.0.1: A framework for packaging Haskell software

Safe Haskell | None
Language | Haskell2010

Distribution.Compat.Semigroup

Description

Compatibility layer for Data.Semigroup

Synopsis

- class Semigroup a where
  - (<>) :: a -> a -> a
- class Semigroup a => Monoid a where
  - mempty :: a
  - mappend :: a -> a -> a
  - mconcat :: [a] -> a
- newtype All = All {
  - getAll :: Bool
  }
- newtype Any = Any {
  - getAny :: Bool
  }
- newtype Last' a = Last' {
  - getLast' :: Maybe a
  }
- gmappend :: (Generic a, GSemigroup (Rep a)) => a -> a -> a
- gmempty :: (Generic a, GMonoid (Rep a)) => a

# Documentation

class Semigroup a where Source #

The class of semigroups (types with an associative binary operation).

Instances should satisfy the associativity law:

-     x <> (y <> z) = (x <> y) <> z

Since: base-4.9.0.0

Methods

(<>) :: a -> a -> a infixr 6 Source #

An associative operation.

Instances

Semigroup Ordering | Since: base-4.9.0.0
Instance details Defined in GHC.Base Methods (<>) :: Ordering -> Ordering -> Ordering Source # sconcat :: NonEmpty Ordering -> Ordering Source # stimes :: Integral b => b -> Ordering -> Ordering Source #
Semigroup () | Since: base-4.9.0.0
Instance details Defined in GHC.Base Methods (<>) :: () -> () -> () Source # sconcat :: NonEmpty () -> () Source # stimes :: Integral b => b -> () -> () Source #
Semigroup Void | Since: base-4.9.0.0
Instance details Defined in Data.Void Methods (<>) :: Void -> Void -> Void Source # sconcat :: NonEmpty Void -> Void Source # stimes :: Integral b => b -> Void -> Void Source #
Semigroup All | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup.Internal Methods (<>) :: All -> All -> All Source # sconcat :: NonEmpty All -> All Source # stimes :: Integral b => b -> All -> All Source #
Semigroup Any | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup.Internal Methods (<>) :: Any -> Any -> Any Source # sconcat :: NonEmpty Any -> Any Source # stimes :: Integral b => b -> Any -> Any Source #
Semigroup ShortByteString |
Instance details Defined in Data.ByteString.Short.Internal Methods (<>) :: ShortByteString -> ShortByteString -> ShortByteString Source # sconcat :: NonEmpty ShortByteString -> ShortByteString Source # stimes :: Integral b => b -> ShortByteString -> ShortByteString Source #
Semigroup ByteString |
Instance details Defined in Data.ByteString.Lazy.Internal Methods (<>) :: ByteString -> ByteString -> ByteString Source # sconcat :: NonEmpty ByteString -> ByteString Source # stimes :: Integral b => b -> ByteString -> ByteString Source #
Semigroup ByteString |
Instance details Defined in Data.ByteString.Internal Methods (<>) :: ByteString -> ByteString -> ByteString Source # sconcat :: NonEmpty ByteString -> ByteString Source # stimes :: Integral b => b -> ByteString -> ByteString Source #
Semigroup Builder |
Instance details Defined in Data.ByteString.Builder.Internal Methods (<>) :: Builder -> Builder -> Builder Source # sconcat :: NonEmpty Builder -> Builder Source # stimes :: Integral b => b -> Builder -> Builder Source #
Semigroup IntSet | Since: containers-0.5.7
Instance details Defined in Data.IntSet.Internal Methods (<>) :: IntSet -> IntSet -> IntSet Source # sconcat :: NonEmpty IntSet -> IntSet Source # stimes :: Integral b => b -> IntSet -> IntSet Source #
Semigroup Doc |
Instance details Defined in Text.PrettyPrint.HughesPJ Methods (<>) :: Doc -> Doc -> Doc Source # sconcat :: NonEmpty Doc -> Doc Source # stimes :: Integral b => b -> Doc -> Doc Source #
Semigroup CDialect # |
Instance details Defined in Distribution.Simple.CCompiler Methods (<>) :: CDialect -> CDialect -> CDialect Source # sconcat :: NonEmpty CDialect -> CDialect Source # stimes :: Integral b => b -> CDialect -> CDialect Source #
Semigroup ShortText # |
Instance details Defined in Distribution.Utils.ShortText Methods (<>) :: ShortText -> ShortText -> ShortText Source # sconcat :: NonEmpty ShortText -> ShortText Source # stimes :: Integral b => b -> ShortText -> ShortText Source #
Semigroup ForeignLibType # |
Instance details Defined in Distribution.Types.ForeignLibType Methods (<>) :: ForeignLibType -> ForeignLibType -> ForeignLibType Source # sconcat :: NonEmpty ForeignLibType -> ForeignLibType Source # stimes :: Integral b => b -> ForeignLibType -> ForeignLibType Source #
Semigroup ExecutableScope # | `Any` like semigroup, where `ExecutablePrivate` is 'Any True'
Instance details Defined in Distribution.Types.ExecutableScope Methods (<>) :: ExecutableScope -> ExecutableScope -> ExecutableScope Source # sconcat :: NonEmpty ExecutableScope -> ExecutableScope Source # stimes :: Integral b => b -> ExecutableScope -> ExecutableScope Source #
Semigroup TestSuiteInterface # |
Instance details Defined in Distribution.Types.TestSuiteInterface Methods (<>) :: TestSuiteInterface -> TestSuiteInterface -> TestSuiteInterface Source # sconcat :: NonEmpty TestSuiteInterface -> TestSuiteInterface Source # stimes :: Integral b => b -> TestSuiteInterface -> TestSuiteInterface Source #
Semigroup BenchmarkInterface # |
Instance details Defined in Distribution.Types.BenchmarkInterface Methods (<>) :: BenchmarkInterface -> BenchmarkInterface -> BenchmarkInterface Source # sconcat :: NonEmpty BenchmarkInterface -> BenchmarkInterface Source # stimes :: Integral b => b -> BenchmarkInterface -> BenchmarkInterface Source #
Semigroup UnqualComponentName # |
Instance details Defined in Distribution.Types.UnqualComponentName Methods (<>) :: UnqualComponentName -> UnqualComponentName -> UnqualComponentName Source # sconcat :: NonEmpty UnqualComponentName -> UnqualComponentName Source # stimes :: Integral b => b -> UnqualComponentName -> UnqualComponentName Source #
Semigroup SetupBuildInfo # |
Instance details Defined in Distribution.Types.SetupBuildInfo Methods (<>) :: SetupBuildInfo -> SetupBuildInfo -> SetupBuildInfo Source # sconcat :: NonEmpty SetupBuildInfo -> SetupBuildInfo Source # stimes :: Integral b => b -> SetupBuildInfo -> SetupBuildInfo Source #
Semigroup DependencyMap # |
Instance details Defined in Distribution.Types.DependencyMap Methods (<>) :: DependencyMap -> DependencyMap -> DependencyMap Source # sconcat :: NonEmpty DependencyMap -> DependencyMap Source # stimes :: Integral b => b -> DependencyMap -> DependencyMap Source #
Semigroup BuildInfo # |
Instance details Defined in Distribution.Types.BuildInfo Methods (<>) :: BuildInfo -> BuildInfo -> BuildInfo Source # sconcat :: NonEmpty BuildInfo -> BuildInfo Source # stimes :: Integral b => b -> BuildInfo -> BuildInfo Source #
Semigroup TestSuite # |
Instance details Defined in Distribution.Types.TestSuite Methods (<>) :: TestSuite -> TestSuite -> TestSuite Source # sconcat :: NonEmpty TestSuite -> TestSuite Source # stimes :: Integral b => b -> TestSuite -> TestSuite Source #
Semigroup Library # |
Instance details Defined in Distribution.Types.Library Methods (<>) :: Library -> Library -> Library Source # sconcat :: NonEmpty Library -> Library Source # stimes :: Integral b => b -> Library -> Library Source #
Semigroup ForeignLib # |
Instance details Defined in Distribution.Types.ForeignLib Methods (<>) :: ForeignLib -> ForeignLib -> ForeignLib Source # sconcat :: NonEmpty ForeignLib -> ForeignLib Source # stimes :: Integral b => b -> ForeignLib -> ForeignLib Source #
Semigroup Executable # |
Instance details Defined in Distribution.Types.Executable Methods (<>) :: Executable -> Executable -> Executable Source # sconcat :: NonEmpty Executable -> Executable Source # stimes :: Integral b => b -> Executable -> Executable Source #
Semigroup Benchmark # |
Instance details Defined in Distribution.Types.Benchmark Methods (<>) :: Benchmark -> Benchmark -> Benchmark Source # sconcat :: NonEmpty Benchmark -> Benchmark Source # stimes :: Integral b => b -> Benchmark -> Benchmark Source #
Semigroup Component # |
Instance details Defined in Distribution.Types.Component Methods (<>) :: Component -> Component -> Component Source # sconcat :: NonEmpty Component -> Component Source # stimes :: Integral b => b -> Component -> Component Source #
Semigroup FlagAssignment # |
Instance details Defined in Distribution.Types.GenericPackageDescription Methods (<>) :: FlagAssignment -> FlagAssignment -> FlagAssignment Source # sconcat :: NonEmpty FlagAssignment -> FlagAssignment Source # stimes :: Integral b => b -> FlagAssignment -> FlagAssignment Source #
Semigroup GhcOptions # |
Instance details Defined in Distribution.Simple.Program.GHC Methods (<>) :: GhcOptions -> GhcOptions -> GhcOptions Source # sconcat :: NonEmpty GhcOptions -> GhcOptions Source # stimes :: Integral b => b -> GhcOptions -> GhcOptions Source #
Semigroup BenchmarkFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: BenchmarkFlags -> BenchmarkFlags -> BenchmarkFlags Source # sconcat :: NonEmpty BenchmarkFlags -> BenchmarkFlags Source # stimes :: Integral b => b -> BenchmarkFlags -> BenchmarkFlags Source #
Semigroup TestFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: TestFlags -> TestFlags -> TestFlags Source # sconcat :: NonEmpty TestFlags -> TestFlags Source # stimes :: Integral b => b -> TestFlags -> TestFlags Source #
Semigroup TestShowDetails # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: TestShowDetails -> TestShowDetails -> TestShowDetails Source # sconcat :: NonEmpty TestShowDetails -> TestShowDetails Source # stimes :: Integral b => b -> TestShowDetails -> TestShowDetails Source #
Semigroup ReplFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: ReplFlags -> ReplFlags -> ReplFlags Source # sconcat :: NonEmpty ReplFlags -> ReplFlags Source # stimes :: Integral b => b -> ReplFlags -> ReplFlags Source #
Semigroup BuildFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: BuildFlags -> BuildFlags -> BuildFlags Source # sconcat :: NonEmpty BuildFlags -> BuildFlags Source # stimes :: Integral b => b -> BuildFlags -> BuildFlags Source #
Semigroup CleanFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: CleanFlags -> CleanFlags -> CleanFlags Source # sconcat :: NonEmpty CleanFlags -> CleanFlags Source # stimes :: Integral b => b -> CleanFlags -> CleanFlags Source #
Semigroup HaddockFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: HaddockFlags -> HaddockFlags -> HaddockFlags Source # sconcat :: NonEmpty HaddockFlags -> HaddockFlags Source # stimes :: Integral b => b -> HaddockFlags -> HaddockFlags Source #
Semigroup DoctestFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: DoctestFlags -> DoctestFlags -> DoctestFlags Source # sconcat :: NonEmpty DoctestFlags -> DoctestFlags Source # stimes :: Integral b => b -> DoctestFlags -> DoctestFlags Source #
Semigroup HscolourFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: HscolourFlags -> HscolourFlags -> HscolourFlags Source # sconcat :: NonEmpty HscolourFlags -> HscolourFlags Source # stimes :: Integral b => b -> HscolourFlags -> HscolourFlags Source #
Semigroup RegisterFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: RegisterFlags -> RegisterFlags -> RegisterFlags Source # sconcat :: NonEmpty RegisterFlags -> RegisterFlags Source # stimes :: Integral b => b -> RegisterFlags -> RegisterFlags Source #
Semigroup SDistFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: SDistFlags -> SDistFlags -> SDistFlags Source # sconcat :: NonEmpty SDistFlags -> SDistFlags Source # stimes :: Integral b => b -> SDistFlags -> SDistFlags Source #
Semigroup InstallFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: InstallFlags -> InstallFlags -> InstallFlags Source # sconcat :: NonEmpty InstallFlags -> InstallFlags Source # stimes :: Integral b => b -> InstallFlags -> InstallFlags Source #
Semigroup CopyFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: CopyFlags -> CopyFlags -> CopyFlags Source # sconcat :: NonEmpty CopyFlags -> CopyFlags Source # stimes :: Integral b => b -> CopyFlags -> CopyFlags Source #
Semigroup ConfigFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: ConfigFlags -> ConfigFlags -> ConfigFlags Source # sconcat :: NonEmpty ConfigFlags -> ConfigFlags Source # stimes :: Integral b => b -> ConfigFlags -> ConfigFlags Source #
Semigroup GlobalFlags # |
Instance details Defined in Distribution.Simple.Setup Methods (<>) :: GlobalFlags -> GlobalFlags -> GlobalFlags Source # sconcat :: NonEmpty GlobalFlags -> GlobalFlags Source # stimes :: Integral b => b -> GlobalFlags -> GlobalFlags Source #
Semigroup [a] | Since: base-4.9.0.0
Instance details Defined in GHC.Base Methods (<>) :: [a] -> [a] -> [a] Source # sconcat :: NonEmpty [a] -> [a] Source # stimes :: Integral b => b -> [a] -> [a] Source #
Semigroup a => Semigroup (Maybe a) | Since: base-4.9.0.0
Instance details Defined in GHC.Base Methods (<>) :: Maybe a -> Maybe a -> Maybe a Source # sconcat :: NonEmpty (Maybe a) -> Maybe a Source # stimes :: Integral b => b -> Maybe a -> Maybe a Source #
Semigroup a => Semigroup (IO a) | Since: base-4.10.0.0
Instance details Defined in GHC.Base Methods (<>) :: IO a -> IO a -> IO a Source # sconcat :: NonEmpty (IO a) -> IO a Source # stimes :: Integral b => b -> IO a -> IO a Source #
Semigroup p => Semigroup (Par1 p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods (<>) :: Par1 p -> Par1 p -> Par1 p Source # sconcat :: NonEmpty (Par1 p) -> Par1 p Source # stimes :: Integral b => b -> Par1 p -> Par1 p Source #
Ord a => Semigroup (Min a) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup Methods (<>) :: Min a -> Min a -> Min a Source # sconcat :: NonEmpty (Min a) -> Min a Source # stimes :: Integral b => b -> Min a -> Min a Source #
Ord a => Semigroup (Max a) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup Methods (<>) :: Max a -> Max a -> Max a Source # sconcat :: NonEmpty (Max a) -> Max a Source # stimes :: Integral b => b -> Max a -> Max a Source #
Semigroup (First a) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup Methods (<>) :: First a -> First a -> First a Source # sconcat :: NonEmpty (First a) -> First a Source # stimes :: Integral b => b -> First a -> First a Source #
Semigroup (Last a) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup Methods (<>) :: Last a -> Last a -> Last a Source # sconcat :: NonEmpty (Last a) -> Last a Source # stimes :: Integral b => b -> Last a -> Last a Source #
Monoid m => Semigroup (WrappedMonoid m) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup Methods (<>) :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m Source # sconcat :: NonEmpty (WrappedMonoid m) -> WrappedMonoid m Source # stimes :: Integral b => b -> WrappedMonoid m -> WrappedMonoid m Source #
Semigroup a => Semigroup (Option a) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup Methods (<>) :: Option a -> Option a -> Option a Source # sconcat :: NonEmpty (Option a) -> Option a Source # stimes :: Integral b => b -> Option a -> Option a Source #
Semigroup a => Semigroup (Identity a) | Since: base-4.9.0.0
Instance details Defined in Data.Functor.Identity Methods (<>) :: Identity a -> Identity a -> Identity a Source # sconcat :: NonEmpty (Identity a) -> Identity a Source # stimes :: Integral b => b -> Identity a -> Identity a Source #
Semigroup (First a) | Since: base-4.9.0.0
Instance details Defined in Data.Monoid Methods (<>) :: First a -> First a -> First a Source # sconcat :: NonEmpty (First a) -> First a Source # stimes :: Integral b => b -> First a -> First a Source #
Semigroup (Last a) | Since: base-4.9.0.0
Instance details Defined in Data.Monoid Methods (<>) :: Last a -> Last a -> Last a Source # sconcat :: NonEmpty (Last a) -> Last a Source # stimes :: Integral b => b -> Last a -> Last a Source #
Semigroup a => Semigroup (Dual a) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup.Internal Methods (<>) :: Dual a -> Dual a -> Dual a Source # sconcat :: NonEmpty (Dual a) -> Dual a Source # stimes :: Integral b => b -> Dual a -> Dual a Source #
Semigroup (Endo a) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup.Internal Methods (<>) :: Endo a -> Endo a -> Endo a Source # sconcat :: NonEmpty (Endo a) -> Endo a Source # stimes :: Integral b => b -> Endo a -> Endo a Source #
Num a => Semigroup (Sum a) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup.Internal Methods (<>) :: Sum a -> Sum a -> Sum a Source # sconcat :: NonEmpty (Sum a) -> Sum a Source # stimes :: Integral b => b -> Sum a -> Sum a Source #
Num a => Semigroup (Product a) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup.Internal Methods (<>) :: Product a -> Product a -> Product a Source # sconcat :: NonEmpty (Product a) -> Product a Source # stimes :: Integral b => b -> Product a -> Product a Source #
Semigroup a => Semigroup (Down a) | Since: base-4.11.0.0
Instance details Defined in Data.Ord Methods (<>) :: Down a -> Down a -> Down a Source # sconcat :: NonEmpty (Down a) -> Down a Source # stimes :: Integral b => b -> Down a -> Down a Source #
Semigroup (NonEmpty a) | Since: base-4.9.0.0
Instance details Defined in GHC.Base Methods (<>) :: NonEmpty a -> NonEmpty a -> NonEmpty a Source # sconcat :: NonEmpty (NonEmpty a) -> NonEmpty a Source # stimes :: Integral b => b -> NonEmpty a -> NonEmpty a Source #
Semigroup (PutM ()) |
Instance details Defined in Data.Binary.Put Methods (<>) :: PutM () -> PutM () -> PutM () Source # sconcat :: NonEmpty (PutM ()) -> PutM () Source # stimes :: Integral b => b -> PutM () -> PutM () Source #
Semigroup (IntMap a) | Since: containers-0.5.7
Instance details Defined in Data.IntMap.Internal Methods (<>) :: IntMap a -> IntMap a -> IntMap a Source # sconcat :: NonEmpty (IntMap a) -> IntMap a Source # stimes :: Integral b => b -> IntMap a -> IntMap a Source #
Semigroup (Seq a) | Since: containers-0.5.7
Instance details Defined in Data.Sequence.Internal Methods (<>) :: Seq a -> Seq a -> Seq a Source # sconcat :: NonEmpty (Seq a) -> Seq a Source # stimes :: Integral b => b -> Seq a -> Seq a Source #
Ord a => Semigroup (Set a) | Since: containers-0.5.7
Instance details Defined in Data.Set.Internal Methods (<>) :: Set a -> Set a -> Set a Source # sconcat :: NonEmpty (Set a) -> Set a Source # stimes :: Integral b => b -> Set a -> Set a Source #
Semigroup (Doc a) |
Instance details Defined in Text.PrettyPrint.Annotated.HughesPJ Methods (<>) :: Doc a -> Doc a -> Doc a Source # sconcat :: NonEmpty (Doc a) -> Doc a Source # stimes :: Integral b => b -> Doc a -> Doc a Source #
Semigroup (MergeSet a) |
Instance details Defined in Data.Set.Internal Methods (<>) :: MergeSet a -> MergeSet a -> MergeSet a Source # sconcat :: NonEmpty (MergeSet a) -> MergeSet a Source # stimes :: Integral b => b -> MergeSet a -> MergeSet a Source #
Semigroup (Last' a) # |
Instance details Defined in Distribution.Compat.Semigroup Methods (<>) :: Last' a -> Last' a -> Last' a Source # sconcat :: NonEmpty (Last' a) -> Last' a Source # stimes :: Integral b => b -> Last' a -> Last' a Source #
Semigroup (DList a) # |
Instance details Defined in Distribution.Compat.DList Methods (<>) :: DList a -> DList a -> DList a Source # sconcat :: NonEmpty (DList a) -> DList a Source # stimes :: Integral b => b -> DList a -> DList a Source #
Semigroup (Flag a) # |
Instance details Defined in Distribution.Simple.Flag Methods (<>) :: Flag a -> Flag a -> Flag a Source # sconcat :: NonEmpty (Flag a) -> Flag a Source # stimes :: Integral b => b -> Flag a -> Flag a Source #
Semigroup (Condition a) # |
Instance details Defined in Distribution.Types.Condition Methods (<>) :: Condition a -> Condition a -> Condition a Source # sconcat :: NonEmpty (Condition a) -> Condition a Source # stimes :: Integral b => b -> Condition a -> Condition a Source #
Semigroup dir => Semigroup (InstallDirs dir) # |
Instance details Defined in Distribution.Simple.InstallDirs Methods (<>) :: InstallDirs dir -> InstallDirs dir -> InstallDirs dir Source # sconcat :: NonEmpty (InstallDirs dir) -> InstallDirs dir Source # stimes :: Integral b => b -> InstallDirs dir -> InstallDirs dir Source #
Ord a => Semigroup (NubListR a) # |
Instance details Defined in Distribution.Utils.NubList Methods (<>) :: NubListR a -> NubListR a -> NubListR a Source # sconcat :: NonEmpty (NubListR a) -> NubListR a Source # stimes :: Integral b => b -> NubListR a -> NubListR a Source #
Ord a => Semigroup (NubList a) # |
Instance details Defined in Distribution.Utils.NubList Methods (<>) :: NubList a -> NubList a -> NubList a Source # sconcat :: NonEmpty (NubList a) -> NubList a Source # stimes :: Integral b => b -> NubList a -> NubList a Source #
Semigroup (PackageIndex InstalledPackageInfo) # |
Instance details Defined in Distribution.Simple.PackageIndex Methods (<>) :: PackageIndex InstalledPackageInfo -> PackageIndex InstalledPackageInfo -> PackageIndex InstalledPackageInfo Source # sconcat :: NonEmpty (PackageIndex InstalledPackageInfo) -> PackageIndex InstalledPackageInfo Source # stimes :: Integral b => b -> PackageIndex InstalledPackageInfo -> PackageIndex InstalledPackageInfo Source #
Semigroup b => Semigroup (a -> b) | Since: base-4.9.0.0
Instance details Defined in GHC.Base Methods (<>) :: (a -> b) -> (a -> b) -> a -> b Source # sconcat :: NonEmpty (a -> b) -> a -> b Source # stimes :: Integral b0 => b0 -> (a -> b) -> a -> b Source #
Semigroup (Either a b) | Since: base-4.9.0.0
Instance details Defined in Data.Either Methods (<>) :: Either a b -> Either a b -> Either a b Source # sconcat :: NonEmpty (Either a b) -> Either a b Source # stimes :: Integral b0 => b0 -> Either a b -> Either a b Source #
Semigroup (V1 p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods (<>) :: V1 p -> V1 p -> V1 p Source # sconcat :: NonEmpty (V1 p) -> V1 p Source # stimes :: Integral b => b -> V1 p -> V1 p Source #
Semigroup (U1 p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods (<>) :: U1 p -> U1 p -> U1 p Source # sconcat :: NonEmpty (U1 p) -> U1 p Source # stimes :: Integral b => b -> U1 p -> U1 p Source #
(Semigroup a, Semigroup b) => Semigroup (a, b) | Since: base-4.9.0.0
Instance details Defined in GHC.Base Methods (<>) :: (a, b) -> (a, b) -> (a, b) Source # sconcat :: NonEmpty (a, b) -> (a, b) Source # stimes :: Integral b0 => b0 -> (a, b) -> (a, b) Source #
Semigroup a => Semigroup (ST s a) | Since: base-4.11.0.0
Instance details Defined in GHC.ST Methods (<>) :: ST s a -> ST s a -> ST s a Source # sconcat :: NonEmpty (ST s a) -> ST s a Source # stimes :: Integral b => b -> ST s a -> ST s a Source #
Semigroup (Proxy s) | Since: base-4.9.0.0
Instance details Defined in Data.Proxy Methods (<>) :: Proxy s -> Proxy s -> Proxy s Source # sconcat :: NonEmpty (Proxy s) -> Proxy s Source # stimes :: Integral b => b -> Proxy s -> Proxy s Source #
Ord k => Semigroup (Map k v) |
Instance details Defined in Data.Map.Internal Methods (<>) :: Map k v -> Map k v -> Map k v Source # sconcat :: NonEmpty (Map k v) -> Map k v Source # stimes :: Integral b => b -> Map k v -> Map k v Source #
Semigroup (f p) => Semigroup (Rec1 f p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods (<>) :: Rec1 f p -> Rec1 f p -> Rec1 f p Source # sconcat :: NonEmpty (Rec1 f p) -> Rec1 f p Source # stimes :: Integral b => b -> Rec1 f p -> Rec1 f p Source #
(Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c) | Since: base-4.9.0.0
Instance details Defined in GHC.Base Methods (<>) :: (a, b, c) -> (a, b, c) -> (a, b, c) Source # sconcat :: NonEmpty (a, b, c) -> (a, b, c) Source # stimes :: Integral b0 => b0 -> (a, b, c) -> (a, b, c) Source #
Semigroup a => Semigroup (Const a b) | Since: base-4.9.0.0
Instance details Defined in Data.Functor.Const Methods (<>) :: Const a b -> Const a b -> Const a b Source # sconcat :: NonEmpty (Const a b) -> Const a b Source # stimes :: Integral b0 => b0 -> Const a b -> Const a b Source #
(Applicative f, Semigroup a) => Semigroup (Ap f a) | Since: base-4.12.0.0
Instance details Defined in Data.Monoid Methods (<>) :: Ap f a -> Ap f a -> Ap f a Source # sconcat :: NonEmpty (Ap f a) -> Ap f a Source # stimes :: Integral b => b -> Ap f a -> Ap f a Source #
Alternative f => Semigroup (Alt f a) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup.Internal Methods (<>) :: Alt f a -> Alt f a -> Alt f a Source # sconcat :: NonEmpty (Alt f a) -> Alt f a Source # stimes :: Integral b => b -> Alt f a -> Alt f a Source #
Semigroup c => Semigroup (K1 i c p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods (<>) :: K1 i c p -> K1 i c p -> K1 i c p Source # sconcat :: NonEmpty (K1 i c p) -> K1 i c p Source # stimes :: Integral b => b -> K1 i c p -> K1 i c p Source #
(Semigroup (f p), Semigroup (g p)) => Semigroup ((f :*: g) p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods (<>) :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p Source # sconcat :: NonEmpty ((f :*: g) p) -> (f :*: g) p Source # stimes :: Integral b => b -> (f :*: g) p -> (f :*: g) p Source #
(Semigroup a, Semigroup b, Semigroup c, Semigroup d) => Semigroup (a, b, c, d) | Since: base-4.9.0.0
Instance details Defined in GHC.Base Methods (<>) :: (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) Source # sconcat :: NonEmpty (a, b, c, d) -> (a, b, c, d) Source # stimes :: Integral b0 => b0 -> (a, b, c, d) -> (a, b, c, d) Source #
Semigroup a => Semigroup (ParsecT s u m a) | The `Semigroup` instance for `ParsecT` is used to append the result of several parsers, for example:
    (many $ char a) <> (many $ char b)
The above will parse a string like `"aabbb"` and return a successful parse result `"aabbb"`. Compare against the below which will produce a result of `"bbb"` for the same input:
    (many $ char a) >> (many $ char b)
    (many $ char a) *> (many $ char b)
Since: parsec-3.1.12
Instance details Defined in Text.Parsec.Prim Methods (<>) :: ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a Source # sconcat :: NonEmpty (ParsecT s u m a) -> ParsecT s u m a Source # stimes :: Integral b => b -> ParsecT s u m a -> ParsecT s u m a Source #
Semigroup (f p) => Semigroup (M1 i c f p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods (<>) :: M1 i c f p -> M1 i c f p -> M1 i c f p Source # sconcat :: NonEmpty (M1 i c f p) -> M1 i c f p Source # stimes :: Integral b => b -> M1 i c f p -> M1 i c f p Source #
Semigroup (f (g p)) => Semigroup ((f :.: g) p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods (<>) :: (f :.: g) p -> (f :.: g) p -> (f :.: g) p Source # sconcat :: NonEmpty ((f :.: g) p) -> (f :.: g) p Source # stimes :: Integral b => b -> (f :.: g) p -> (f :.: g) p Source #
(Semigroup a, Semigroup b, Semigroup c, Semigroup d, Semigroup e) => Semigroup (a, b, c, d, e) | Since: base-4.9.0.0
Instance details Defined in GHC.Base Methods (<>) :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) Source # sconcat :: NonEmpty (a, b, c, d, e) -> (a, b, c, d, e) Source # stimes :: Integral b0 => b0 -> (a, b, c, d, e) -> (a, b, c, d, e) Source #

class Semigroup a => Monoid a where Source #

The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following laws:

-     x <> mempty = x

-     mempty <> x = x

- `x `<>` (y `<>` z) = (x `<>` y) `<>` z` (`Semigroup` law)

-     mconcat = foldr '(<>)' mempty

The method names refer to the monoid of lists under concatenation, but there are many other instances.

Some types can be viewed as a monoid in more than one way, e.g. both addition and multiplication on numbers. In such cases we often define `newtype`s and make those instances of `Monoid`, e.g. `Sum` and `Product`.

NOTE: `Semigroup` is a superclass of `Monoid` since base-4.11.0.0.

Minimal complete definition

mempty

Methods

mempty :: a Source #

Identity of `mappend`

mappend :: a -> a -> a Source #

An associative operation

NOTE: This method is redundant and has the default implementation ``mappend` = '(<>)'` since base-4.11.0.0.

mconcat :: [a] -> a Source #

Fold a list using the monoid.

For most types, the default definition for `mconcat` will be used, but the function is included in the class definition so that an optimized version can be provided for specific types.

Instances

Monoid Ordering | Since: base-2.1
Instance details Defined in GHC.Base Methods mempty :: Ordering Source # mappend :: Ordering -> Ordering -> Ordering Source # mconcat :: [Ordering] -> Ordering Source #
Monoid () | Since: base-2.1
Instance details Defined in GHC.Base Methods mempty :: () Source # mappend :: () -> () -> () Source # mconcat :: [()] -> () Source #
Monoid All | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods mempty :: All Source # mappend :: All -> All -> All Source # mconcat :: [All] -> All Source #
Monoid Any | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods mempty :: Any Source # mappend :: Any -> Any -> Any Source # mconcat :: [Any] -> Any Source #
Monoid ShortByteString |
Instance details Defined in Data.ByteString.Short.Internal Methods mempty :: ShortByteString Source # mappend :: ShortByteString -> ShortByteString -> ShortByteString Source # mconcat :: [ShortByteString] -> ShortByteString Source #
Monoid ByteString |
Instance details Defined in Data.ByteString.Lazy.Internal Methods mempty :: ByteString Source # mappend :: ByteString -> ByteString -> ByteString Source # mconcat :: [ByteString] -> ByteString Source #
Monoid ByteString |
Instance details Defined in Data.ByteString.Internal Methods mempty :: ByteString Source # mappend :: ByteString -> ByteString -> ByteString Source # mconcat :: [ByteString] -> ByteString Source #
Monoid Builder |
Instance details Defined in Data.ByteString.Builder.Internal Methods mempty :: Builder Source # mappend :: Builder -> Builder -> Builder Source # mconcat :: [Builder] -> Builder Source #
Monoid IntSet |
Instance details Defined in Data.IntSet.Internal Methods mempty :: IntSet Source # mappend :: IntSet -> IntSet -> IntSet Source # mconcat :: [IntSet] -> IntSet Source #
Monoid Doc |
Instance details Defined in Text.PrettyPrint.HughesPJ Methods mempty :: Doc Source # mappend :: Doc -> Doc -> Doc Source # mconcat :: [Doc] -> Doc Source #
Monoid CDialect # |
Instance details Defined in Distribution.Simple.CCompiler Methods mempty :: CDialect Source # mappend :: CDialect -> CDialect -> CDialect Source # mconcat :: [CDialect] -> CDialect Source #
Monoid ShortText # |
Instance details Defined in Distribution.Utils.ShortText Methods mempty :: ShortText Source # mappend :: ShortText -> ShortText -> ShortText Source # mconcat :: [ShortText] -> ShortText Source #
Monoid ForeignLibType # |
Instance details Defined in Distribution.Types.ForeignLibType Methods mempty :: ForeignLibType Source # mappend :: ForeignLibType -> ForeignLibType -> ForeignLibType Source # mconcat :: [ForeignLibType] -> ForeignLibType Source #
Monoid ExecutableScope # | `mempty` = `ExecutablePublic`
Instance details Defined in Distribution.Types.ExecutableScope Methods mempty :: ExecutableScope Source # mappend :: ExecutableScope -> ExecutableScope -> ExecutableScope Source # mconcat :: [ExecutableScope] -> ExecutableScope Source #
Monoid TestSuiteInterface # |
Instance details Defined in Distribution.Types.TestSuiteInterface Methods mempty :: TestSuiteInterface Source # mappend :: TestSuiteInterface -> TestSuiteInterface -> TestSuiteInterface Source # mconcat :: [TestSuiteInterface] -> TestSuiteInterface Source #
Monoid BenchmarkInterface # |
Instance details Defined in Distribution.Types.BenchmarkInterface Methods mempty :: BenchmarkInterface Source # mappend :: BenchmarkInterface -> BenchmarkInterface -> BenchmarkInterface Source # mconcat :: [BenchmarkInterface] -> BenchmarkInterface Source #
Monoid UnqualComponentName # |
Instance details Defined in Distribution.Types.UnqualComponentName Methods mempty :: UnqualComponentName Source # mappend :: UnqualComponentName -> UnqualComponentName -> UnqualComponentName Source # mconcat :: [UnqualComponentName] -> UnqualComponentName Source #
Monoid SetupBuildInfo # |
Instance details Defined in Distribution.Types.SetupBuildInfo Methods mempty :: SetupBuildInfo Source # mappend :: SetupBuildInfo -> SetupBuildInfo -> SetupBuildInfo Source # mconcat :: [SetupBuildInfo] -> SetupBuildInfo Source #
Monoid DependencyMap # |
Instance details Defined in Distribution.Types.DependencyMap Methods mempty :: DependencyMap Source # mappend :: DependencyMap -> DependencyMap -> DependencyMap Source # mconcat :: [DependencyMap] -> DependencyMap Source #
Monoid BuildInfo # |
Instance details Defined in Distribution.Types.BuildInfo Methods mempty :: BuildInfo Source # mappend :: BuildInfo -> BuildInfo -> BuildInfo Source # mconcat :: [BuildInfo] -> BuildInfo Source #
Monoid TestSuite # |
Instance details Defined in Distribution.Types.TestSuite Methods mempty :: TestSuite Source # mappend :: TestSuite -> TestSuite -> TestSuite Source # mconcat :: [TestSuite] -> TestSuite Source #
Monoid Library # |
Instance details Defined in Distribution.Types.Library Methods mempty :: Library Source # mappend :: Library -> Library -> Library Source # mconcat :: [Library] -> Library Source #
Monoid ForeignLib # |
Instance details Defined in Distribution.Types.ForeignLib Methods mempty :: ForeignLib Source # mappend :: ForeignLib -> ForeignLib -> ForeignLib Source # mconcat :: [ForeignLib] -> ForeignLib Source #
Monoid Executable # |
Instance details Defined in Distribution.Types.Executable Methods mempty :: Executable Source # mappend :: Executable -> Executable -> Executable Source # mconcat :: [Executable] -> Executable Source #
Monoid Benchmark # |
Instance details Defined in Distribution.Types.Benchmark Methods mempty :: Benchmark Source # mappend :: Benchmark -> Benchmark -> Benchmark Source # mconcat :: [Benchmark] -> Benchmark Source #
Monoid FlagAssignment # |
Instance details Defined in Distribution.Types.GenericPackageDescription Methods mempty :: FlagAssignment Source # mappend :: FlagAssignment -> FlagAssignment -> FlagAssignment Source # mconcat :: [FlagAssignment] -> FlagAssignment Source #
Monoid GhcOptions # |
Instance details Defined in Distribution.Simple.Program.GHC Methods mempty :: GhcOptions Source # mappend :: GhcOptions -> GhcOptions -> GhcOptions Source # mconcat :: [GhcOptions] -> GhcOptions Source #
Monoid BenchmarkFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: BenchmarkFlags Source # mappend :: BenchmarkFlags -> BenchmarkFlags -> BenchmarkFlags Source # mconcat :: [BenchmarkFlags] -> BenchmarkFlags Source #
Monoid TestFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: TestFlags Source # mappend :: TestFlags -> TestFlags -> TestFlags Source # mconcat :: [TestFlags] -> TestFlags Source #
Monoid TestShowDetails # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: TestShowDetails Source # mappend :: TestShowDetails -> TestShowDetails -> TestShowDetails Source # mconcat :: [TestShowDetails] -> TestShowDetails Source #
Monoid ReplFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: ReplFlags Source # mappend :: ReplFlags -> ReplFlags -> ReplFlags Source # mconcat :: [ReplFlags] -> ReplFlags Source #
Monoid BuildFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: BuildFlags Source # mappend :: BuildFlags -> BuildFlags -> BuildFlags Source # mconcat :: [BuildFlags] -> BuildFlags Source #
Monoid CleanFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: CleanFlags Source # mappend :: CleanFlags -> CleanFlags -> CleanFlags Source # mconcat :: [CleanFlags] -> CleanFlags Source #
Monoid HaddockFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: HaddockFlags Source # mappend :: HaddockFlags -> HaddockFlags -> HaddockFlags Source # mconcat :: [HaddockFlags] -> HaddockFlags Source #
Monoid DoctestFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: DoctestFlags Source # mappend :: DoctestFlags -> DoctestFlags -> DoctestFlags Source # mconcat :: [DoctestFlags] -> DoctestFlags Source #
Monoid HscolourFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: HscolourFlags Source # mappend :: HscolourFlags -> HscolourFlags -> HscolourFlags Source # mconcat :: [HscolourFlags] -> HscolourFlags Source #
Monoid RegisterFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: RegisterFlags Source # mappend :: RegisterFlags -> RegisterFlags -> RegisterFlags Source # mconcat :: [RegisterFlags] -> RegisterFlags Source #
Monoid SDistFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: SDistFlags Source # mappend :: SDistFlags -> SDistFlags -> SDistFlags Source # mconcat :: [SDistFlags] -> SDistFlags Source #
Monoid InstallFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: InstallFlags Source # mappend :: InstallFlags -> InstallFlags -> InstallFlags Source # mconcat :: [InstallFlags] -> InstallFlags Source #
Monoid CopyFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: CopyFlags Source # mappend :: CopyFlags -> CopyFlags -> CopyFlags Source # mconcat :: [CopyFlags] -> CopyFlags Source #
Monoid ConfigFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: ConfigFlags Source # mappend :: ConfigFlags -> ConfigFlags -> ConfigFlags Source # mconcat :: [ConfigFlags] -> ConfigFlags Source #
Monoid GlobalFlags # |
Instance details Defined in Distribution.Simple.Setup Methods mempty :: GlobalFlags Source # mappend :: GlobalFlags -> GlobalFlags -> GlobalFlags Source # mconcat :: [GlobalFlags] -> GlobalFlags Source #
Monoid [a] | Since: base-2.1
Instance details Defined in GHC.Base Methods mempty :: [a] Source # mappend :: [a] -> [a] -> [a] Source # mconcat :: [[a]] -> [a] Source #
Semigroup a => Monoid (Maybe a) | Lift a semigroup into `Maybe` forming a `Monoid` according to http://en.wikipedia.org/wiki/Monoid: "Any semigroup `S` may be turned into a monoid simply by adjoining an element `e` not in `S` and defining `e*e = e` and `e*s = s = s*e` for all `s ∈ S`." Since 4.11.0: constraint on inner `a` value generalised from `Monoid` to `Semigroup`. Since: base-2.1
Instance details Defined in GHC.Base Methods mempty :: Maybe a Source # mappend :: Maybe a -> Maybe a -> Maybe a Source # mconcat :: [Maybe a] -> Maybe a Source #
Monoid a => Monoid (IO a) | Since: base-4.9.0.0
Instance details Defined in GHC.Base Methods mempty :: IO a Source # mappend :: IO a -> IO a -> IO a Source # mconcat :: [IO a] -> IO a Source #
Monoid p => Monoid (Par1 p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods mempty :: Par1 p Source # mappend :: Par1 p -> Par1 p -> Par1 p Source # mconcat :: [Par1 p] -> Par1 p Source #
(Ord a, Bounded a) => Monoid (Min a) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup Methods mempty :: Min a Source # mappend :: Min a -> Min a -> Min a Source # mconcat :: [Min a] -> Min a Source #
(Ord a, Bounded a) => Monoid (Max a) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup Methods mempty :: Max a Source # mappend :: Max a -> Max a -> Max a Source # mconcat :: [Max a] -> Max a Source #
Monoid m => Monoid (WrappedMonoid m) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup Methods mempty :: WrappedMonoid m Source # mappend :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m Source # mconcat :: [WrappedMonoid m] -> WrappedMonoid m Source #
Semigroup a => Monoid (Option a) | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup Methods mempty :: Option a Source # mappend :: Option a -> Option a -> Option a Source # mconcat :: [Option a] -> Option a Source #
Monoid a => Monoid (Identity a) | Since: base-4.9.0.0
Instance details Defined in Data.Functor.Identity Methods mempty :: Identity a Source # mappend :: Identity a -> Identity a -> Identity a Source # mconcat :: [Identity a] -> Identity a Source #
Monoid (First a) | Since: base-2.1
Instance details Defined in Data.Monoid Methods mempty :: First a Source # mappend :: First a -> First a -> First a Source # mconcat :: [First a] -> First a Source #
Monoid (Last a) | Since: base-2.1
Instance details Defined in Data.Monoid Methods mempty :: Last a Source # mappend :: Last a -> Last a -> Last a Source # mconcat :: [Last a] -> Last a Source #
Monoid a => Monoid (Dual a) | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods mempty :: Dual a Source # mappend :: Dual a -> Dual a -> Dual a Source # mconcat :: [Dual a] -> Dual a Source #
Monoid (Endo a) | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods mempty :: Endo a Source # mappend :: Endo a -> Endo a -> Endo a Source # mconcat :: [Endo a] -> Endo a Source #
Num a => Monoid (Sum a) | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods mempty :: Sum a Source # mappend :: Sum a -> Sum a -> Sum a Source # mconcat :: [Sum a] -> Sum a Source #
Num a => Monoid (Product a) | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods mempty :: Product a Source # mappend :: Product a -> Product a -> Product a Source # mconcat :: [Product a] -> Product a Source #
Monoid a => Monoid (Down a) | Since: base-4.11.0.0
Instance details Defined in Data.Ord Methods mempty :: Down a Source # mappend :: Down a -> Down a -> Down a Source # mconcat :: [Down a] -> Down a Source #
Monoid (PutM ()) |
Instance details Defined in Data.Binary.Put Methods mempty :: PutM () Source # mappend :: PutM () -> PutM () -> PutM () Source # mconcat :: [PutM ()] -> PutM () Source #
Monoid (IntMap a) |
Instance details Defined in Data.IntMap.Internal Methods mempty :: IntMap a Source # mappend :: IntMap a -> IntMap a -> IntMap a Source # mconcat :: [IntMap a] -> IntMap a Source #
Monoid (Seq a) |
Instance details Defined in Data.Sequence.Internal Methods mempty :: Seq a Source # mappend :: Seq a -> Seq a -> Seq a Source # mconcat :: [Seq a] -> Seq a Source #
Ord a => Monoid (Set a) |
Instance details Defined in Data.Set.Internal Methods mempty :: Set a Source # mappend :: Set a -> Set a -> Set a Source # mconcat :: [Set a] -> Set a Source #
Monoid (Doc a) |
Instance details Defined in Text.PrettyPrint.Annotated.HughesPJ Methods mempty :: Doc a Source # mappend :: Doc a -> Doc a -> Doc a Source # mconcat :: [Doc a] -> Doc a Source #
Monoid (MergeSet a) |
Instance details Defined in Data.Set.Internal Methods mempty :: MergeSet a Source # mappend :: MergeSet a -> MergeSet a -> MergeSet a Source # mconcat :: [MergeSet a] -> MergeSet a Source #
Monoid (Last' a) # |
Instance details Defined in Distribution.Compat.Semigroup Methods mempty :: Last' a Source # mappend :: Last' a -> Last' a -> Last' a Source # mconcat :: [Last' a] -> Last' a Source #
Monoid (DList a) # |
Instance details Defined in Distribution.Compat.DList Methods mempty :: DList a Source # mappend :: DList a -> DList a -> DList a Source # mconcat :: [DList a] -> DList a Source #
Monoid (Flag a) # |
Instance details Defined in Distribution.Simple.Flag Methods mempty :: Flag a Source # mappend :: Flag a -> Flag a -> Flag a Source # mconcat :: [Flag a] -> Flag a Source #
Monoid (Condition a) # |
Instance details Defined in Distribution.Types.Condition Methods mempty :: Condition a Source # mappend :: Condition a -> Condition a -> Condition a Source # mconcat :: [Condition a] -> Condition a Source #
(Semigroup dir, Monoid dir) => Monoid (InstallDirs dir) # |
Instance details Defined in Distribution.Simple.InstallDirs Methods mempty :: InstallDirs dir Source # mappend :: InstallDirs dir -> InstallDirs dir -> InstallDirs dir Source # mconcat :: [InstallDirs dir] -> InstallDirs dir Source #
Ord a => Monoid (NubListR a) # |
Instance details Defined in Distribution.Utils.NubList Methods mempty :: NubListR a Source # mappend :: NubListR a -> NubListR a -> NubListR a Source # mconcat :: [NubListR a] -> NubListR a Source #
Ord a => Monoid (NubList a) # | Monoid operations on NubLists. For a valid Monoid instance we need to satistfy the required monoid laws; identity, associativity and closure. Identity : by inspection: mempty `mappend` NubList xs == NubList xs `mappend` mempty Associativity : by inspection: (NubList xs `mappend` NubList ys) `mappend` NubList zs == NubList xs `mappend` (NubList ys `mappend` NubList zs) Closure : appending two lists of type a and removing duplicates obviously does not change the type.
Instance details Defined in Distribution.Utils.NubList Methods mempty :: NubList a Source # mappend :: NubList a -> NubList a -> NubList a Source # mconcat :: [NubList a] -> NubList a Source #
Monoid (PackageIndex InstalledPackageInfo) # |
Instance details Defined in Distribution.Simple.PackageIndex Methods mempty :: PackageIndex InstalledPackageInfo Source # mappend :: PackageIndex InstalledPackageInfo -> PackageIndex InstalledPackageInfo -> PackageIndex InstalledPackageInfo Source # mconcat :: [PackageIndex InstalledPackageInfo] -> PackageIndex InstalledPackageInfo Source #
Monoid b => Monoid (a -> b) | Since: base-2.1
Instance details Defined in GHC.Base Methods mempty :: a -> b Source # mappend :: (a -> b) -> (a -> b) -> a -> b Source # mconcat :: [a -> b] -> a -> b Source #
Monoid (U1 p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods mempty :: U1 p Source # mappend :: U1 p -> U1 p -> U1 p Source # mconcat :: [U1 p] -> U1 p Source #
(Monoid a, Monoid b) => Monoid (a, b) | Since: base-2.1
Instance details Defined in GHC.Base Methods mempty :: (a, b) Source # mappend :: (a, b) -> (a, b) -> (a, b) Source # mconcat :: [(a, b)] -> (a, b) Source #
Monoid a => Monoid (ST s a) | Since: base-4.11.0.0
Instance details Defined in GHC.ST Methods mempty :: ST s a Source # mappend :: ST s a -> ST s a -> ST s a Source # mconcat :: [ST s a] -> ST s a Source #
Monoid (Proxy s) | Since: base-4.7.0.0
Instance details Defined in Data.Proxy Methods mempty :: Proxy s Source # mappend :: Proxy s -> Proxy s -> Proxy s Source # mconcat :: [Proxy s] -> Proxy s Source #
Ord k => Monoid (Map k v) |
Instance details Defined in Data.Map.Internal Methods mempty :: Map k v Source # mappend :: Map k v -> Map k v -> Map k v Source # mconcat :: [Map k v] -> Map k v Source #
Monoid (f p) => Monoid (Rec1 f p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods mempty :: Rec1 f p Source # mappend :: Rec1 f p -> Rec1 f p -> Rec1 f p Source # mconcat :: [Rec1 f p] -> Rec1 f p Source #
(Monoid a, Monoid b, Monoid c) => Monoid (a, b, c) | Since: base-2.1
Instance details Defined in GHC.Base Methods mempty :: (a, b, c) Source # mappend :: (a, b, c) -> (a, b, c) -> (a, b, c) Source # mconcat :: [(a, b, c)] -> (a, b, c) Source #
Monoid a => Monoid (Const a b) | Since: base-4.9.0.0
Instance details Defined in Data.Functor.Const Methods mempty :: Const a b Source # mappend :: Const a b -> Const a b -> Const a b Source # mconcat :: [Const a b] -> Const a b Source #
(Applicative f, Monoid a) => Monoid (Ap f a) | Since: base-4.12.0.0
Instance details Defined in Data.Monoid Methods mempty :: Ap f a Source # mappend :: Ap f a -> Ap f a -> Ap f a Source # mconcat :: [Ap f a] -> Ap f a Source #
Alternative f => Monoid (Alt f a) | Since: base-4.8.0.0
Instance details Defined in Data.Semigroup.Internal Methods mempty :: Alt f a Source # mappend :: Alt f a -> Alt f a -> Alt f a Source # mconcat :: [Alt f a] -> Alt f a Source #
Monoid c => Monoid (K1 i c p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods mempty :: K1 i c p Source # mappend :: K1 i c p -> K1 i c p -> K1 i c p Source # mconcat :: [K1 i c p] -> K1 i c p Source #
(Monoid (f p), Monoid (g p)) => Monoid ((f :*: g) p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods mempty :: (f :*: g) p Source # mappend :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p Source # mconcat :: [(f :*: g) p] -> (f :*: g) p Source #
(Monoid a, Monoid b, Monoid c, Monoid d) => Monoid (a, b, c, d) | Since: base-2.1
Instance details Defined in GHC.Base Methods mempty :: (a, b, c, d) Source # mappend :: (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) Source # mconcat :: [(a, b, c, d)] -> (a, b, c, d) Source #
(Monoid a, Semigroup (ParsecT s u m a)) => Monoid (ParsecT s u m a) | The `Monoid` instance for `ParsecT` is used for the same purposes as the `Semigroup` instance. Since: parsec-3.1.12
Instance details Defined in Text.Parsec.Prim Methods mempty :: ParsecT s u m a Source # mappend :: ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a Source # mconcat :: [ParsecT s u m a] -> ParsecT s u m a Source #
Monoid (f p) => Monoid (M1 i c f p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods mempty :: M1 i c f p Source # mappend :: M1 i c f p -> M1 i c f p -> M1 i c f p Source # mconcat :: [M1 i c f p] -> M1 i c f p Source #
Monoid (f (g p)) => Monoid ((f :.: g) p) | Since: base-4.12.0.0
Instance details Defined in GHC.Generics Methods mempty :: (f :.: g) p Source # mappend :: (f :.: g) p -> (f :.: g) p -> (f :.: g) p Source # mconcat :: [(f :.: g) p] -> (f :.: g) p Source #
(Monoid a, Monoid b, Monoid c, Monoid d, Monoid e) => Monoid (a, b, c, d, e) | Since: base-2.1
Instance details Defined in GHC.Base Methods mempty :: (a, b, c, d, e) Source # mappend :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) Source # mconcat :: [(a, b, c, d, e)] -> (a, b, c, d, e) Source #

newtype All Source #

Boolean monoid under conjunction (`&&`).

    >>> getAll (All True <> mempty <> All False)
    False

    >>> getAll (mconcat (map (\x -> All (even x)) [2,4,6,7,8]))
    False

Constructors

All |
Fields getAll :: Bool

Instances

Bounded All | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods minBound :: All Source # maxBound :: All Source #
Eq All | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods (==) :: All -> All -> Bool # (/=) :: All -> All -> Bool #
Data All | Since: base-4.8.0.0
Instance details Defined in Data.Data Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> All -> c All Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c All Source # toConstr :: All -> Constr Source # dataTypeOf :: All -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c All) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c All) Source # gmapT :: (forall b. Data b => b -> b) -> All -> All Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> All -> r Source # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> All -> r Source # gmapQ :: (forall d. Data d => d -> u) -> All -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> All -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> All -> m All Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> All -> m All Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> All -> m All Source #
Ord All | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods compare :: All -> All -> Ordering # (<) :: All -> All -> Bool # (<=) :: All -> All -> Bool # (>) :: All -> All -> Bool # (>=) :: All -> All -> Bool # max :: All -> All -> All # min :: All -> All -> All #
Read All | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods readsPrec :: Int -> ReadS All Source # readList :: ReadS [All] Source # readPrec :: ReadPrec All Source # readListPrec :: ReadPrec [All] Source #
Show All | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods showsPrec :: Int -> All -> ShowS Source # show :: All -> String Source # showList :: [All] -> ShowS Source #
Generic All |
Instance details Defined in Data.Semigroup.Internal Associated Types type Rep All :: Type -> Type Source # Methods from :: All -> Rep All x Source # to :: Rep All x -> All Source #
Semigroup All | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup.Internal Methods (<>) :: All -> All -> All Source # sconcat :: NonEmpty All -> All Source # stimes :: Integral b => b -> All -> All Source #
Monoid All | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods mempty :: All Source # mappend :: All -> All -> All Source # mconcat :: [All] -> All Source #
Binary All | Since: 0.8.4.0
Instance details Defined in Data.Binary.Class Methods put :: All -> Put Source # get :: Get All Source # putList :: [All] -> Put Source #
NFData All | Since: deepseq-1.4.0.0
Instance details Defined in Control.DeepSeq Methods rnf :: All -> () Source #
type Rep All | Since: base-4.7.0.0
Instance details Defined in Data.Semigroup.Internal type Rep All = D1 (MetaData "All" "Data.Semigroup.Internal" "base" True) (C1 (MetaCons "All" PrefixI True) (S1 (MetaSel (Just "getAll") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)))

newtype Any Source #

Boolean monoid under disjunction (`||`).

    >>> getAny (Any True <> mempty <> Any False)
    True

    >>> getAny (mconcat (map (\x -> Any (even x)) [2,4,6,7,8]))
    True

Constructors

Any |
Fields getAny :: Bool

Instances

Bounded Any | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods minBound :: Any Source # maxBound :: Any Source #
Eq Any | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods (==) :: Any -> Any -> Bool # (/=) :: Any -> Any -> Bool #
Data Any | Since: base-4.8.0.0
Instance details Defined in Data.Data Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Any -> c Any Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Any Source # toConstr :: Any -> Constr Source # dataTypeOf :: Any -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Any) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Any) Source # gmapT :: (forall b. Data b => b -> b) -> Any -> Any Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Any -> r Source # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Any -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Any -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Any -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Any -> m Any Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Any -> m Any Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Any -> m Any Source #
Ord Any | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods compare :: Any -> Any -> Ordering # (<) :: Any -> Any -> Bool # (<=) :: Any -> Any -> Bool # (>) :: Any -> Any -> Bool # (>=) :: Any -> Any -> Bool # max :: Any -> Any -> Any # min :: Any -> Any -> Any #
Read Any | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods readsPrec :: Int -> ReadS Any Source # readList :: ReadS [Any] Source # readPrec :: ReadPrec Any Source # readListPrec :: ReadPrec [Any] Source #
Show Any | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods showsPrec :: Int -> Any -> ShowS Source # show :: Any -> String Source # showList :: [Any] -> ShowS Source #
Generic Any |
Instance details Defined in Data.Semigroup.Internal Associated Types type Rep Any :: Type -> Type Source # Methods from :: Any -> Rep Any x Source # to :: Rep Any x -> Any Source #
Semigroup Any | Since: base-4.9.0.0
Instance details Defined in Data.Semigroup.Internal Methods (<>) :: Any -> Any -> Any Source # sconcat :: NonEmpty Any -> Any Source # stimes :: Integral b => b -> Any -> Any Source #
Monoid Any | Since: base-2.1
Instance details Defined in Data.Semigroup.Internal Methods mempty :: Any Source # mappend :: Any -> Any -> Any Source # mconcat :: [Any] -> Any Source #
Binary Any | Since: 0.8.4.0
Instance details Defined in Data.Binary.Class Methods put :: Any -> Put Source # get :: Get Any Source # putList :: [Any] -> Put Source #
NFData Any | Since: deepseq-1.4.0.0
Instance details Defined in Control.DeepSeq Methods rnf :: Any -> () Source #
type Rep Any | Since: base-4.7.0.0
Instance details Defined in Data.Semigroup.Internal type Rep Any = D1 (MetaData "Any" "Data.Semigroup.Internal" "base" True) (C1 (MetaCons "Any" PrefixI True) (S1 (MetaSel (Just "getAny") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)))

newtype Last' a Source #

Cabal's own `Last` copy to avoid requiring an orphan `Binary` instance.

Once the oldest `binary` version we support provides a `Binary` instance for `Last` we can remove this one here.

NB: `Last` is defined differently and not a `Monoid`

Constructors

Last' |
Fields getLast' :: Maybe a

Instances

Functor Last' # |
Instance details Defined in Distribution.Compat.Semigroup Methods fmap :: (a -> b) -> Last' a -> Last' b Source # (<$) :: a -> Last' b -> Last' a Source #
Applicative Last' # |
Instance details Defined in Distribution.Compat.Semigroup Methods pure :: a -> Last' a Source # (<*>) :: Last' (a -> b) -> Last' a -> Last' b Source # liftA2 :: (a -> b -> c) -> Last' a -> Last' b -> Last' c Source # (*>) :: Last' a -> Last' b -> Last' b Source # (<*) :: Last' a -> Last' b -> Last' a Source #
Eq a => Eq (Last' a) # |
Instance details Defined in Distribution.Compat.Semigroup Methods (==) :: Last' a -> Last' a -> Bool # (/=) :: Last' a -> Last' a -> Bool #
Ord a => Ord (Last' a) # |
Instance details Defined in Distribution.Compat.Semigroup Methods compare :: Last' a -> Last' a -> Ordering # (<) :: Last' a -> Last' a -> Bool # (<=) :: Last' a -> Last' a -> Bool # (>) :: Last' a -> Last' a -> Bool # (>=) :: Last' a -> Last' a -> Bool # max :: Last' a -> Last' a -> Last' a # min :: Last' a -> Last' a -> Last' a #
Read a => Read (Last' a) # |
Instance details Defined in Distribution.Compat.Semigroup Methods readsPrec :: Int -> ReadS (Last' a) Source # readList :: ReadS [Last' a] Source # readPrec :: ReadPrec (Last' a) Source # readListPrec :: ReadPrec [Last' a] Source #
Show a => Show (Last' a) # |
Instance details Defined in Distribution.Compat.Semigroup Methods showsPrec :: Int -> Last' a -> ShowS Source # show :: Last' a -> String Source # showList :: [Last' a] -> ShowS Source #
Generic (Last' a) # |
Instance details Defined in Distribution.Compat.Semigroup Associated Types type Rep (Last' a) :: Type -> Type Source # Methods from :: Last' a -> Rep (Last' a) x Source # to :: Rep (Last' a) x -> Last' a Source #
Semigroup (Last' a) # |
Instance details Defined in Distribution.Compat.Semigroup Methods (<>) :: Last' a -> Last' a -> Last' a Source # sconcat :: NonEmpty (Last' a) -> Last' a Source # stimes :: Integral b => b -> Last' a -> Last' a Source #
Monoid (Last' a) # |
Instance details Defined in Distribution.Compat.Semigroup Methods mempty :: Last' a Source # mappend :: Last' a -> Last' a -> Last' a Source # mconcat :: [Last' a] -> Last' a Source #
Binary a => Binary (Last' a) # |
Instance details Defined in Distribution.Compat.Semigroup Methods put :: Last' a -> Put Source # get :: Get (Last' a) Source # putList :: [Last' a] -> Put Source #
type Rep (Last' a) # |
Instance details Defined in Distribution.Compat.Semigroup type Rep (Last' a) = D1 (MetaData "Last'" "Distribution.Compat.Semigroup" "Cabal-2.4.0.1" True) (C1 (MetaCons "Last'" PrefixI True) (S1 (MetaSel (Just "getLast'") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe a))))

gmappend :: (Generic a, GSemigroup (Rep a)) => a -> a -> a Source #

Generically generate a `Semigroup` (`<>`) operation for any type implementing `Generic`. This operation will append two values by point-wise appending their component fields. It is only defined for product types.

    gmappend a (gmappend b c) = gmappend (gmappend a b) c

gmempty :: (Generic a, GMonoid (Rep a)) => a Source #

Generically generate a `Monoid` `mempty` for any product-like type implementing `Generic`.

It is only defined for product types.

    gmappend gmempty a = a = gmappend a gmempty