HORIZON HASKELLDocslts/ghc-9.14.x3e2d5682026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · 3e2d568 · 2026-10-11

ModuleCabal-syntax-3.16.0.0Haskell2010

Distribution.Compat.Semigroup

Compatibility layer for Data.Semigroup

  • 5 types
  • 2 classes
  • 2 values
classclass Semigroup a where
#

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

Instances should satisfy the following:

Associativity

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

You can alternatively define sconcat instead of (<>), in which case the laws are:

Unit

sconcat (pure x) = x

Multiplication

sconcat (join xss) = sconcat (fmap sconcat xss)

Methods

  • (<>) :: a -> a -> ainfixr 6

    An associative operation.

    Examples
    Example1 expression
    [1,2,3] <> [4,5,6][1,2,3,4,5,6]
    Example1 expression
    Just [1, 2, 3] <> Just [4, 5, 6]Just [1,2,3,4,5,6]
    Example1 expression
    putStr "Hello, " <> putStrLn "World!"Hello, World!
Instances124Semigroup, …
  • Semigroup MarginDefined in Cabal-syntax-3.16.0.0 · Distribution.Fields.Pretty

    Collapse margins, any margin = margin

  • Semigroup DepTestRsltDefined in Cabal-syntax-3.16.0.0 · Distribution.PackageDescription.Configuration
  • Semigroup PDTaggedDefined in Cabal-syntax-3.16.0.0 · Distribution.PackageDescription.Configuration
  • Semigroup BenchmarkDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.Benchmark
  • Semigroup BenchmarkInterfaceDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.BenchmarkInterface
  • Semigroup BuildInfoDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.BuildInfo
  • Semigroup ComponentDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.Component
  • Semigroup DependencyMapDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.DependencyMap
  • Semigroup ExecutableDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.Executable
  • Semigroup ExecutableScopeDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.ExecutableScope

    Any like semigroup, where ExecutablePrivate is 'Any True'

  • Semigroup FlagAssignmentDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.Flag
  • Semigroup ForeignLibDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.ForeignLib
  • Semigroup ForeignLibTypeDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.ForeignLibType
  • Semigroup LibraryDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.Library
  • Semigroup LibraryVisibilityDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.LibraryVisibility
  • Semigroup SetupBuildInfoDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.SetupBuildInfo
  • Semigroup TestSuiteDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.TestSuite
  • Semigroup TestSuiteInterfaceDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.TestSuiteInterface
  • Semigroup UnqualComponentNameDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.UnqualComponentName
  • Semigroup ShortTextDefined in Cabal-syntax-3.16.0.0 · Distribution.Utils.ShortText
  • Semigroup ByteArrayDefined in base-4.22.0.0 · Data.Array.Byte
  • Semigroup BuilderDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.Internal
  • Semigroup ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.Type
  • Semigroup ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.Internal
  • Semigroup ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.Internal
  • Semigroup IntSetDefined in containers-0.8 · Data.IntSet.Internal

    (<>) = union

  • Semigroup IntersectionDefined in containers-0.8 · Data.IntSet.Internal
  • Semigroup UnitDefined in deepseq-1.5.1.0 · Control.DeepSeq
  • Semigroup VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Semigroup AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Semigroup AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Semigroup EventDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.Types
  • Semigroup EventLifetimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.Types
  • Semigroup LifetimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.Types
  • Semigroup ExceptionContextDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.Context
  • Semigroup OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Semigroup OsStringDefined in os-string-2.0.8 · System.OsString.Internal.Types
  • Semigroup PosixStringDefined in os-string-2.0.8 · System.OsString.Internal.Types
  • Semigroup WindowsStringDefined in os-string-2.0.8 · System.OsString.Internal.Types
  • Semigroup DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJ
  • Semigroup TextDefined in text-2.1.3 · Data.Text · orphan

    Beware: stimes will crash if the given number does not fit into an Int.

  • Semigroup BuilderDefined in text-2.1.3 · Data.Text.Internal.Builder
  • Semigroup TextDefined in text-2.1.3 · Data.Text.Lazy · orphan
  • Semigroup StrictTextBuilderDefined in text-2.1.3 · Data.Text.Internal.StrictBuilder

    Concatenation of StrictBuilder is right-biased: the right builder will be run first. This allows a builder to run tail-recursively when it was accumulated left-to-right.

  • Semigroup CalendarDiffDaysDefined in time-1.15 · Data.Time.Calendar.CalendarDiffDays

    Additive

  • Semigroup CalendarDiffTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.CalendarDiffTime

    Additive

  • Semigroup StatxFlagsDefined in unix-2.8.8.0 · System.Posix.Files.Common

    ORs the flags.

  • Semigroup StatxMaskDefined in unix-2.8.8.0 · System.Posix.Files.Common

    ORs the masks.

  • Semigroup ()Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Monoid m => Semigroup (WrappedMonoid m)Defined in base-4.22.0.0 · Data.Semigroup
  • Semigroup (DList a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Compat.DList
  • Semigroup (First' a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Compat.Semigroup
  • Semigroup (Last' a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Compat.Semigroup
  • Semigroup (Condition a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Types.Condition
  • Semigroup (FromMaybe b)Defined in base-4.22.0.0 · Data.Foldable1
  • Semigroup (NonEmptyDList a)Defined in base-4.22.0.0 · Data.Foldable1
  • Semigroup (Comparison a)Defined in base-4.22.0.0 · Data.Functor.Contravariant

    (<>) on comparisons combines results with (<>) @Ordering. Without newtypes this equals liftA2 (liftA2 (<>)).

    (<>) :: Comparison a -> Comparison a -> Comparison a
    Comparison cmp <> Comparison cmp' = Comparison a a' ->
      cmp a a' <> cmp a a'
    
  • Semigroup (Equivalence a)Defined in base-4.22.0.0 · Data.Functor.Contravariant

    (<>) on equivalences uses logical conjunction (&&) on the results. Without newtypes this equals liftA2 (liftA2 (&&)).

    (<>) :: Equivalence a -> Equivalence a -> Equivalence a
    Equivalence equiv <> Equivalence equiv' = Equivalence a b ->
      equiv a b && equiv' a b
    
  • Semigroup (Predicate a)Defined in base-4.22.0.0 · Data.Functor.Contravariant

    (<>) on predicates uses logical conjunction (&&) on the results. Without newtypes this equals liftA2 (&&).

    (<>) :: Predicate a -> Predicate a -> Predicate a
    Predicate pred <> Predicate pred' = Predicate a ->
      pred a && pred' a
    
  • Semigroup (First a)Defined in base-4.22.0.0 · Data.Semigroup
  • Semigroup (Last a)Defined in base-4.22.0.0 · Data.Semigroup
  • Semigroup (PutM ())Defined in binary-0.8.9.3 · Data.Binary.Put
  • Semigroup (IntMap a)Defined in containers-0.8 · Data.IntMap.Internal

    (<>) = union

  • Semigroup (Seq a)Defined in containers-0.8 · Data.Sequence.Internal

    (<>) = (><)

  • Semigroup (MergeSet a)Defined in containers-0.8 · Data.Set.Internal
  • Semigroup (EqM a)Defined in containers-0.8 · Utils.Containers.Internal.EqOrdUtil

    Composes left-to-right, short-circuits on False

  • Semigroup (OrdM a)Defined in containers-0.8 · Utils.Containers.Internal.EqOrdUtil

    Composes left-to-right, short-circuits on non-EQ

  • Semigroup (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.NonEmpty · orphan
  • Semigroup (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid
  • Semigroup (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid
  • Semigroup (Endo a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Semigroup (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJ
  • Semigroup [a]Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Semigroup a => Semigroup (Option' a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Compat.Semigroup
  • Semigroup a => Semigroup (PerCompilerFlavor a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Compiler
  • Semigroup a => Semigroup (JoinWith a)Defined in base-4.22.0.0 · Data.Foldable1
  • Semigroup a => Semigroup (STM a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Conc.Sync
  • Semigroup a => Semigroup (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Identity
  • Semigroup a => Semigroup (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Ord
  • Semigroup a => Semigroup (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Semigroup a => Semigroup (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Semigroup a => Semigroup (Q a)Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax
  • Semigroup a => Semigroup (IO a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Semigroup a => Semigroup (a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Semigroup p => Semigroup (Par1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • Bits a => Semigroup (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Bits
  • Bits a => Semigroup (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Bits
  • Bits a => Semigroup (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Bits
  • FiniteBits a => Semigroup (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Bits

    This constraint is arguably too strong. However, as some types (such as Natural) have undefined complement, this is the only safe choice.

  • Ord a => Semigroup (NonEmptySet a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Compat.NonEmptySet

    Note: there aren't Monoid instance.

  • Ord a => Semigroup (Max a)Defined in base-4.22.0.0 · Data.Semigroup
  • Ord a => Semigroup (Min a)Defined in base-4.22.0.0 · Data.Semigroup
  • Ord a => Semigroup (Intersection a)Defined in containers-0.8 · Data.Set.Internal
  • Ord a => Semigroup (Set a)Defined in containers-0.8 · Data.Set.Internal

    (<>) = union

  • Ord a => Semigroup (Max a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Utils
  • Ord a => Semigroup (Min a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Utils
  • Num a => Semigroup (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Num a => Semigroup (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • (Generic a, Semigroup (Rep a ())) => Semigroup (Generically a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • Semigroup (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Either
  • Semigroup (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Proxy
  • Semigroup (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • Semigroup (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • Semigroup a => Semigroup (Op a b)Defined in base-4.22.0.0 · Data.Functor.Contravariant

    (<>) @(Op a b) without newtypes is (<>) @(b->a) = liftA2 (<>). This lifts the Semigroup operation (<>) over the output of a.

    (<>) :: Op a b -> Op a b -> Op a b
    Op f <> Op g = Op a -> f a <> g a
    
  • Semigroup a => Semigroup (ST s a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ST
  • Semigroup b => Semigroup (a -> b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Ord k => Semigroup (Map k v)Defined in containers-0.8 · Data.Map.Internal

    (<>) = union

  • (Semigroup a, Semigroup b) => Semigroup (a, b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Alternative f => Semigroup (Alt f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Semigroup (f p) => Semigroup (Rec1 f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • Semigroup a => Semigroup (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Const
  • Semigroup a => Semigroup (Constant a b)Defined in transformers-0.6.1.2 · Data.Functor.Constant
  • (Applicative f, Semigroup a) => Semigroup (Ap f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid
  • (Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • (Semigroup a, Semigroup c) => Semigroup (CondTree v c a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Types.CondTree
  • Semigroup a => Semigroup (ParsecT s u m a)Defined in parsec-3.1.18.0 · Text.Parsec.Prim

    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)
    
  • Semigroup c => Semigroup (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • (Semigroup (f a), Semigroup (g a)) => Semigroup (Product f g a)Defined in base-4.22.0.0 · Data.Functor.Product
  • (Semigroup (f p), Semigroup (g p)) => Semigroup ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • (Semigroup a, Semigroup b, Semigroup c, Semigroup d) => Semigroup (a, b, c, d)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Semigroup (f (g a)) => Semigroup (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.Compose
  • Semigroup (f (g p)) => Semigroup ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • Semigroup (f p) => Semigroup (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • (Semigroup a, Semigroup b, Semigroup c, Semigroup d, Semigroup e) => Semigroup (a, b, c, d, e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
classclass Semigroup a => Monoid a where
#

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

Right identity

x <> mempty = x

Left identity

mempty <> x = x

Associativity

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

(

Semigroup

law)

Concatenation

mconcat = foldr (<>) mempty

You can alternatively define mconcat instead of mempty, in which case the laws are:

Unit

mconcat (pure x) = x

Multiplication

mconcat (join xss) = mconcat (fmap mconcat xss)

Subclass

mconcat (toList xs) = sconcat xs

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 newtypes and make those instances of Monoid, e.g. Data.Semigroup.Sum and Data.Semigroup.Product.

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

Methods

  • mempty :: a

    Identity of mappend

    Examples
    Example1 expression
    "Hello world" <> mempty"Hello world"
    Example1 expression
    mempty <> [1, 2, 3][1,2,3]
  • mappend :: a -> a -> a

    An associative operation

    NOTE: This method is redundant and has the default implementation mappend = (<>) since base-4.11.0.0. Should it be implemented manually, since mappend is a synonym for (<>), it is expected that the two functions are defined the same way. In a future GHC release mappend will be removed from Monoid.

  • mconcat :: [a] -> a

    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.

    Example1 expression
    mconcat ["Hello", " ", "Haskell", "!"]"Hello Haskell!"
Instances108Monoid, …
  • Monoid DepTestRsltDefined in Cabal-syntax-3.16.0.0 · Distribution.PackageDescription.Configuration
  • Monoid PDTaggedDefined in Cabal-syntax-3.16.0.0 · Distribution.PackageDescription.Configuration
  • Monoid BenchmarkDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.Benchmark
  • Monoid BenchmarkInterfaceDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.BenchmarkInterface
  • Monoid BuildInfoDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.BuildInfo
  • Monoid DependencyMapDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.DependencyMap
  • Monoid ExecutableDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.Executable
  • Monoid ExecutableScopeDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.ExecutableScope
  • Monoid FlagAssignmentDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.Flag
  • Monoid ForeignLibDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.ForeignLib
  • Monoid ForeignLibTypeDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.ForeignLibType
  • Monoid LibraryDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.Library

    This instance is not good.

    We need it for PackageDescription.Configuration.addBuildableCondition. More correct method would be some kind of "create empty clone".

    More concretely, addBuildableCondition will make `libVisibility = False` libraries when `buildable: false`. This may cause problems.

  • Monoid LibraryVisibilityDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.LibraryVisibility
  • Monoid SetupBuildInfoDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.SetupBuildInfo
  • Monoid TestSuiteDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.TestSuite
  • Monoid TestSuiteInterfaceDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.TestSuiteInterface
  • Monoid UnqualComponentNameDefined in Cabal-syntax-3.16.0.0 · Distribution.Types.UnqualComponentName
  • Monoid ShortTextDefined in Cabal-syntax-3.16.0.0 · Distribution.Utils.ShortText
  • Monoid ByteArrayDefined in base-4.22.0.0 · Data.Array.Byte
  • Monoid BuilderDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.Internal
  • Monoid ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.Type
  • Monoid ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.Internal
  • Monoid ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.Internal
  • Monoid IntSetDefined in containers-0.8 · Data.IntSet.Internal

    mempty = empty

  • Monoid UnitDefined in deepseq-1.5.1.0 · Control.DeepSeq
  • Monoid AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Monoid AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Monoid EventDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.Types
  • Monoid EventLifetimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.Types
  • Monoid LifetimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.Types

    mappend takes the longer of two lifetimes.

  • Monoid ExceptionContextDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.Context
  • Monoid OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Monoid OsStringDefined in os-string-2.0.8 · System.OsString.Internal.Types

    "String-Concatenation" for OsString. This is not the same as (</>).

  • Monoid PosixStringDefined in os-string-2.0.8 · System.OsString.Internal.Types
  • Monoid WindowsStringDefined in os-string-2.0.8 · System.OsString.Internal.Types
  • Monoid DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJ
  • Monoid TextDefined in text-2.1.3 · Data.Text · orphan
  • Monoid BuilderDefined in text-2.1.3 · Data.Text.Internal.Builder
  • Monoid TextDefined in text-2.1.3 · Data.Text.Lazy · orphan
  • Monoid StrictTextBuilderDefined in text-2.1.3 · Data.Text.Internal.StrictBuilder
  • Monoid CalendarDiffDaysDefined in time-1.15 · Data.Time.Calendar.CalendarDiffDays

    Additive

  • Monoid CalendarDiffTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.CalendarDiffTime

    Additive

  • Monoid StatxFlagsDefined in unix-2.8.8.0 · System.Posix.Files.Common
  • Monoid StatxMaskDefined in unix-2.8.8.0 · System.Posix.Files.Common
  • Monoid ()Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Monoid (DList a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Compat.DList
  • Monoid (Condition a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Types.Condition
  • Monoid (Comparison a)Defined in base-4.22.0.0 · Data.Functor.Contravariant

    mempty on comparisons always returns EQ. Without newtypes this equals pure (pure EQ).

    mempty :: Comparison a
    mempty = Comparison _ _ -> EQ
    
  • Monoid (Equivalence a)Defined in base-4.22.0.0 · Data.Functor.Contravariant

    mempty on equivalences always returns True. Without newtypes this equals pure (pure True).

    mempty :: Equivalence a
    mempty = Equivalence _ _ -> True
    
  • Monoid (Predicate a)Defined in base-4.22.0.0 · Data.Functor.Contravariant

    mempty on predicates always returns True. Without newtypes this equals pure True.

    mempty :: Predicate a
    mempty = _ -> True
    
  • Monoid (PutM ())Defined in binary-0.8.9.3 · Data.Binary.Put
  • Monoid (IntMap a)Defined in containers-0.8 · Data.IntMap.Internal

    mempty = empty

  • Monoid (Seq a)Defined in containers-0.8 · Data.Sequence.Internal

    mempty = empty

  • Monoid (MergeSet a)Defined in containers-0.8 · Data.Set.Internal
  • Monoid (EqM a)Defined in containers-0.8 · Utils.Containers.Internal.EqOrdUtil
  • Monoid (OrdM a)Defined in containers-0.8 · Utils.Containers.Internal.EqOrdUtil
  • Monoid (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid
  • Monoid (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid
  • Monoid (Endo a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Monoid (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJ
  • Monoid [a]Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Monoid a => Monoid (STM a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Conc.Sync
  • Monoid a => Monoid (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Identity
  • Monoid a => Monoid (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Ord
  • Monoid a => Monoid (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Monoid a => Monoid (Q a)Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax
  • Monoid a => Monoid (IO a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Monoid a => Monoid (a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Monoid m => Monoid (WrappedMonoid m)Defined in base-4.22.0.0 · Data.Semigroup
  • Monoid p => Monoid (Par1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • Semigroup a => Monoid (Option' a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Compat.Semigroup
  • Semigroup a => Monoid (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base

    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.

  • Bits a => Monoid (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Bits
  • Bits a => Monoid (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Bits
  • FiniteBits a => Monoid (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Bits

    This constraint is arguably too strong. However, as some types (such as Natural) have undefined complement, this is the only safe choice.

  • FiniteBits a => Monoid (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Bits

    This constraint is arguably too strong. However, as some types (such as Natural) have undefined complement, this is the only safe choice.

  • Ord a => Monoid (Set a)Defined in containers-0.8 · Data.Set.Internal

    mempty = empty

  • Ord a => Monoid (Max a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Utils
  • Ord a => Monoid (Min a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Utils
  • Num a => Monoid (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Num a => Monoid (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • (Semigroup a, Monoid a) => Monoid (PerCompilerFlavor a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Compiler
  • (Ord a, Bounded a) => Monoid (Max a)Defined in base-4.22.0.0 · Data.Semigroup
  • (Ord a, Bounded a) => Monoid (Min a)Defined in base-4.22.0.0 · Data.Semigroup
  • (Generic a, Monoid (Rep a ())) => Monoid (Generically a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • Monoid (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Proxy
  • Monoid (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • Monoid a => Monoid (Op a b)Defined in base-4.22.0.0 · Data.Functor.Contravariant

    mempty @(Op a b) without newtypes is mempty @(b->a) = _ -> mempty.

    mempty :: Op a b
    mempty = Op _ -> mempty
    
  • Monoid a => Monoid (ST s a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ST
  • Monoid b => Monoid (a -> b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Ord k => Monoid (Map k v)Defined in containers-0.8 · Data.Map.Internal

    mempty = empty

  • (Monoid a, Monoid b) => Monoid (a, b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • Alternative f => Monoid (Alt f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Monoid (f p) => Monoid (Rec1 f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • Monoid a => Monoid (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Const
  • Monoid a => Monoid (Constant a b)Defined in transformers-0.6.1.2 · Data.Functor.Constant
  • (Applicative f, Monoid a) => Monoid (Ap f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid
  • (Monoid a, Monoid b, Monoid c) => Monoid (a, b, c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • (Semigroup a, Semigroup c, Monoid a, Monoid c) => Monoid (CondTree v c a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Types.CondTree
  • Monoid c => Monoid (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • (Monoid (f a), Monoid (g a)) => Monoid (Product f g a)Defined in base-4.22.0.0 · Data.Functor.Product
  • (Monoid (f p), Monoid (g p)) => Monoid ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • (Monoid a, Monoid b, Monoid c, Monoid d) => Monoid (a, b, c, d)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
  • (Monoid a, Semigroup (ParsecT s u m a)) => Monoid (ParsecT s u m a)Defined in parsec-3.1.18.0 · Text.Parsec.Prim

    The Monoid instance for ParsecT is used for the same purposes as the Semigroup instance.

  • Monoid (f (g a)) => Monoid (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.Compose
  • Monoid (f (g p)) => Monoid ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • Monoid (f p) => Monoid (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
  • (Monoid a, Monoid b, Monoid c, Monoid d, Monoid e) => Monoid (a, b, c, d, e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
newtypenewtype All
#

Boolean monoid under conjunction (&&).

All x <> All y = All (x && y)
Examples
Example1 expression
All True <> mempty <> All False)All {getAll = False}
Example1 expression
mconcat (map (\x -> All (even x)) [2,4,6,7,8])All {getAll = False}
Example1 expression
All True <> memptyAll {getAll = True}

Constructors

Instances12Bounded, Eq, Data, Ord, Read, Show, …
  • Bounded AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Eq AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Data AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Data
  • Ord AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Read AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Show AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Generic AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Semigroup AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Monoid AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • NFData AllDefined in deepseq-1.5.1.0 · Control.DeepSeq
  • Binary AllDefined in binary-0.8.9.3 · Data.Binary.Class
  • type Rep All = D1 ('MetaData "All" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "All" 'PrefixI 'True) (S1 ('MetaSel ('Just "getAll") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
newtypenewtype Any
#

Boolean monoid under disjunction (||).

Any x <> Any y = Any (x || y)
Examples
Example1 expression
Any True <> mempty <> Any FalseAny {getAny = True}
Example1 expression
mconcat (map (\x -> Any (even x)) [2,4,6,7,8])Any {getAny = True}
Example1 expression
Any False <> memptyAny {getAny = False}

Constructors

Instances12Bounded, Eq, Data, Ord, Read, Show, …
  • Bounded AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Eq AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Data AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Data
  • Ord AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Read AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Show AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Generic AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Semigroup AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • Monoid AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
  • NFData AnyDefined in deepseq-1.5.1.0 · Control.DeepSeq
  • Binary AnyDefined in binary-0.8.9.3 · Data.Binary.Class
  • type Rep Any = D1 ('MetaData "Any" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Any" 'PrefixI 'True) (S1 ('MetaSel ('Just "getAny") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal
newtypenewtype First' a
#

A copy of First.

Constructors

Instances4Eq, Ord, Show, Semigroup
  • Eq a => Eq (First' a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Compat.Semigroup
  • Ord a => Ord (First' a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Compat.Semigroup
  • Show a => Show (First' a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Compat.Semigroup
  • Semigroup (First' a)Defined in Cabal-syntax-3.16.0.0 · Distribution.Compat.Semigroup
newtypenewtype Last' a
#

A copy of Last.

Constructors

Instances10Functor, Eq, Ord, Read, Show, Generic, …
newtypenewtype Option' a
#

A wrapper around Maybe, providing the Semigroup and Monoid instances implemented for Maybe since base-4.11.

Constructors

Instances11Functor, Eq, Ord, Read, Show, Generic, …