base-4.20.0.0: Core data structures and operations

Data.Monoid

Description

A type a is a Monoid if it provides an associative function (<>) that lets you combine any two values of type a into one, and a neutral element (mempty) such that

a <> mempty == mempty <> a == a

A Monoid is a Semigroup with the added requirement of a neutral element. Thus any Monoid is a Semigroup, but not the other way around.

#### Examples

Expand

The Sum monoid is defined by the numerical addition operator and 0 as neutral element:

>>> mempty :: Sum Int
Sum {getSum = 0}
>>> Sum 1 <> Sum 2 <> Sum 3 <> Sum 4 :: Sum Int
Sum {getSum = 10}


We can combine multiple values in a list into a single value using the mconcat function. Note that we have to specify the type here since Int is a monoid under several different operations:

>>> mconcat [1,2,3,4] :: Sum Int
Sum {getSum = 10}
>>> mconcat [] :: Sum Int
Sum {getSum = 0}


Another valid monoid instance of Int is Product It is defined by multiplication and 1 as neutral element:

>>> Product 1 <> Product 2 <> Product 3 <> Product 4 :: Product Int
Product {getProduct = 24}
>>> mconcat [1,2,3,4] :: Product Int
Product {getProduct = 24}
>>> mconcat [] :: Product Int
Product {getProduct = 1}

Synopsis

# Monoid typeclass

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:

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. Sum and Product.

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

Minimal complete definition

Methods

mempty :: a Source #

Identity of mappend

#### Examples

Expand
>>> "Hello world" <> mempty
"Hello world"

>>> mempty <> [1, 2, 3]
[1,2,3]


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. 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 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.

>>> mconcat ["Hello", " ", "Haskell", "!"]
"Hello Haskell!"


#### Instances

Instances details
 Source # Since: base-4.17.0.0 Instance detailsDefined in Data.Array.Byte Methodsmconcat :: [ByteArray] -> ByteArray Source # @since base-2.01 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal Methodsmappend :: All -> All -> All Source #mconcat :: [All] -> All Source # @since base-2.01 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal Methodsmappend :: Any -> Any -> Any Source #mconcat :: [Any] -> Any Source # @since base-4.4.0.0 Instance detailsDefined in GHC.Internal.Event.Internal.Types Methodsmconcat :: [Event] -> Event Source # Monoid EventLifetime @since base-4.8.0.0 Instance detailsDefined in GHC.Internal.Event.Internal.Types Methodsmempty :: EventLifetime Source #mappend :: EventLifetime -> EventLifetime -> EventLifetime Source #mconcat :: [EventLifetime] -> EventLifetime Source # mappend takes the longer of two lifetimes.@since base-4.8.0.0 Instance detailsDefined in GHC.Internal.Event.Internal.Types Methodsmconcat :: [Lifetime] -> Lifetime Source # Instance detailsDefined in GHC.Internal.Exception.Context Methods @since base-2.01 Instance detailsDefined in GHC.Internal.Base Methodsmconcat :: [Ordering] -> Ordering Source # Monoid () @since base-2.01 Instance detailsDefined in GHC.Internal.Base Methodsmempty :: () Source #mappend :: () -> () -> () Source #mconcat :: [()] -> () Source # Source # mempty on comparisons always returns EQ. Without newtypes this equals pure (pure EQ).mempty :: Comparison a mempty = Comparison _ _ -> EQ  Instance detailsDefined in Data.Functor.Contravariant Methodsmappend :: Comparison a -> Comparison a -> Comparison a Source #mconcat :: [Comparison a] -> Comparison a Source # Source # mempty on equivalences always returns True. Without newtypes this equals pure (pure True).mempty :: Equivalence a mempty = Equivalence _ _ -> True  Instance detailsDefined in Data.Functor.Contravariant Methodsmconcat :: [Equivalence a] -> Equivalence a Source # Source # mempty on predicates always returns True. Without newtypes this equals pure True.mempty :: Predicate a mempty = _ -> True  Instance detailsDefined in Data.Functor.Contravariant Methodsmappend :: Predicate a -> Predicate a -> Predicate a Source #mconcat :: [Predicate a] -> Predicate a Source # (Ord a, Bounded a) => Monoid (Max a) Source # Since: base-4.9.0.0 Instance detailsDefined in Data.Semigroup Methodsmappend :: Max a -> Max a -> Max a Source #mconcat :: [Max a] -> Max a Source # (Ord a, Bounded a) => Monoid (Min a) Source # Since: base-4.9.0.0 Instance detailsDefined in Data.Semigroup Methodsmappend :: Min a -> Min a -> Min a Source #mconcat :: [Min a] -> Min a Source # Monoid m => Monoid (WrappedMonoid m) Source # Since: base-4.9.0.0 Instance detailsDefined in Data.Semigroup Methodsmconcat :: [WrappedMonoid m] -> WrappedMonoid m Source # Monoid a => Monoid (STM a) @since base-4.17.0.0 Instance detailsDefined in GHC.Internal.Conc.Sync Methodsmappend :: STM a -> STM a -> STM a Source #mconcat :: [STM a] -> STM a Source # FiniteBits a => Monoid (And a) This constraint is arguably too strong. However, as some types (such as Natural) have undefined complement, this is the only safe choice.@since base-4.16 Instance detailsDefined in GHC.Internal.Data.Bits Methodsmappend :: And a -> And a -> And a Source #mconcat :: [And a] -> And a Source # FiniteBits a => Monoid (Iff a) This constraint is arguably too strong. However, as some types (such as Natural) have undefined complement, this is the only safe choice.@since base-4.16 Instance detailsDefined in GHC.Internal.Data.Bits Methodsmappend :: Iff a -> Iff a -> Iff a Source #mconcat :: [Iff a] -> Iff a Source # Bits a => Monoid (Ior a) @since base-4.16 Instance detailsDefined in GHC.Internal.Data.Bits Methodsmappend :: Ior a -> Ior a -> Ior a Source #mconcat :: [Ior a] -> Ior a Source # Bits a => Monoid (Xor a) @since base-4.16 Instance detailsDefined in GHC.Internal.Data.Bits Methodsmappend :: Xor a -> Xor a -> Xor a Source #mconcat :: [Xor a] -> Xor a Source # Monoid a => Monoid (Identity a) @since base-4.9.0.0 Instance detailsDefined in GHC.Internal.Data.Functor.Identity Methodsmappend :: Identity a -> Identity a -> Identity a Source #mconcat :: [Identity a] -> Identity a Source # Ord a => Monoid (Max a) @since base-4.8.0.0 Instance detailsDefined in GHC.Internal.Data.Functor.Utils Methodsmappend :: Max a -> Max a -> Max a Source #mconcat :: [Max a] -> Max a Source # Ord a => Monoid (Min a) @since base-4.8.0.0 Instance detailsDefined in GHC.Internal.Data.Functor.Utils Methodsmappend :: Min a -> Min a -> Min a Source #mconcat :: [Min a] -> Min a Source # Monoid (First a) @since base-2.01 Instance detailsDefined in GHC.Internal.Data.Monoid Methodsmappend :: First a -> First a -> First a Source #mconcat :: [First a] -> First a Source # Monoid (Last a) @since base-2.01 Instance detailsDefined in GHC.Internal.Data.Monoid Methodsmappend :: Last a -> Last a -> Last a Source #mconcat :: [Last a] -> Last a Source # Monoid a => Monoid (Down a) @since base-4.11.0.0 Instance detailsDefined in GHC.Internal.Data.Ord Methodsmappend :: Down a -> Down a -> Down a Source #mconcat :: [Down a] -> Down a Source # Monoid a => Monoid (Dual a) @since base-2.01 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal Methodsmappend :: Dual a -> Dual a -> Dual a Source #mconcat :: [Dual a] -> Dual a Source # Monoid (Endo a) @since base-2.01 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal Methodsmappend :: Endo a -> Endo a -> Endo a Source #mconcat :: [Endo a] -> Endo a Source # Num a => Monoid (Product a) @since base-2.01 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal Methodsmappend :: Product a -> Product a -> Product a Source #mconcat :: [Product a] -> Product a Source # Num a => Monoid (Sum a) @since base-2.01 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal Methodsmappend :: Sum a -> Sum a -> Sum a Source #mconcat :: [Sum a] -> Sum a Source # (Generic a, Monoid (Rep a ())) => Monoid (Generically a) @since base-4.17.0.0 Instance detailsDefined in GHC.Internal.Generics Methodsmconcat :: [Generically a] -> Generically a Source # Monoid p => Monoid (Par1 p) @since base-4.12.0.0 Instance detailsDefined in GHC.Internal.Generics Methodsmappend :: Par1 p -> Par1 p -> Par1 p Source #mconcat :: [Par1 p] -> Par1 p Source # Monoid a => Monoid (IO a) @since base-4.9.0.0 Instance detailsDefined in GHC.Internal.Base Methodsmappend :: IO a -> IO a -> IO a Source #mconcat :: [IO a] -> IO 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.01 Instance detailsDefined in GHC.Internal.Base Methodsmappend :: Maybe a -> Maybe a -> Maybe a Source #mconcat :: [Maybe a] -> Maybe a Source # Monoid a => Monoid (Solo a) @since base-4.15 Instance detailsDefined in GHC.Internal.Base Methodsmappend :: Solo a -> Solo a -> Solo a Source #mconcat :: [Solo a] -> Solo a Source # Monoid [a] @since base-2.01 Instance detailsDefined in GHC.Internal.Base Methodsmempty :: [a] Source #mappend :: [a] -> [a] -> [a] Source #mconcat :: [[a]] -> [a] Source # Monoid a => Monoid (Op a b) Source # mempty @(Op a b) without newtypes is mempty @(b->a) = _ -> mempty.mempty :: Op a b mempty = Op _ -> mempty  Instance detailsDefined in Data.Functor.Contravariant Methodsmempty :: Op a b Source #mappend :: Op a b -> Op a b -> Op a b Source #mconcat :: [Op a b] -> Op a b Source # Monoid (Proxy s) @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Proxy Methodsmappend :: Proxy s -> Proxy s -> Proxy s Source #mconcat :: [Proxy s] -> Proxy s Source # Monoid (U1 p) @since base-4.12.0.0 Instance detailsDefined in GHC.Internal.Generics Methodsmappend :: U1 p -> U1 p -> U1 p Source #mconcat :: [U1 p] -> U1 p Source # Monoid a => Monoid (ST s a) @since base-4.11.0.0 Instance detailsDefined in GHC.Internal.ST Methodsmempty :: ST s a Source #mappend :: ST s a -> ST s a -> ST s a Source #mconcat :: [ST s a] -> ST s a Source # (Monoid a, Monoid b) => Monoid (a, b) @since base-2.01 Instance detailsDefined in GHC.Internal.Base Methodsmempty :: (a, b) Source #mappend :: (a, b) -> (a, b) -> (a, b) Source #mconcat :: [(a, b)] -> (a, b) Source # Monoid b => Monoid (a -> b) @since base-2.01 Instance detailsDefined in GHC.Internal.Base Methodsmempty :: a -> b Source #mappend :: (a -> b) -> (a -> b) -> a -> b Source #mconcat :: [a -> b] -> a -> b Source # Monoid a => Monoid (Const a b) @since base-4.9.0.0 Instance detailsDefined in GHC.Internal.Data.Functor.Const Methodsmempty :: 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 detailsDefined in GHC.Internal.Data.Monoid Methodsmempty :: 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 detailsDefined in GHC.Internal.Data.Semigroup.Internal Methodsmempty :: Alt f a Source #mappend :: Alt f a -> Alt f a -> Alt f a Source #mconcat :: [Alt f a] -> Alt f a Source # Monoid (f p) => Monoid (Rec1 f p) @since base-4.12.0.0 Instance detailsDefined in GHC.Internal.Generics Methodsmempty :: 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.01 Instance detailsDefined in GHC.Internal.Base Methodsmempty :: (a, b, c) Source #mappend :: (a, b, c) -> (a, b, c) -> (a, b, c) Source #mconcat :: [(a, b, c)] -> (a, b, c) Source # (Monoid (f a), Monoid (g a)) => Monoid (Product f g a) Source # Since: base-4.16.0.0 Instance detailsDefined in Data.Functor.Product Methodsmempty :: Product f g a Source #mappend :: Product f g a -> Product f g a -> Product f g a Source #mconcat :: [Product f g a] -> Product f g a Source # (Monoid (f p), Monoid (g p)) => Monoid ((f :*: g) p) @since base-4.12.0.0 Instance detailsDefined in GHC.Internal.Generics Methodsmempty :: (f :*: g) p Source #mappend :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p Source #mconcat :: [(f :*: g) p] -> (f :*: g) p Source # Monoid c => Monoid (K1 i c p) @since base-4.12.0.0 Instance detailsDefined in GHC.Internal.Generics Methodsmempty :: 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 a, Monoid b, Monoid c, Monoid d) => Monoid (a, b, c, d) @since base-2.01 Instance detailsDefined in GHC.Internal.Base Methodsmempty :: (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 (f (g a)) => Monoid (Compose f g a) Source # Since: base-4.16.0.0 Instance detailsDefined in Data.Functor.Compose Methodsmempty :: Compose f g a Source #mappend :: Compose f g a -> Compose f g a -> Compose f g a Source #mconcat :: [Compose f g a] -> Compose f g a Source # Monoid (f (g p)) => Monoid ((f :.: g) p) @since base-4.12.0.0 Instance detailsDefined in GHC.Internal.Generics Methodsmempty :: (f :.: g) p Source #mappend :: (f :.: g) p -> (f :.: g) p -> (f :.: g) p Source #mconcat :: [(f :.: g) p] -> (f :.: g) p Source # Monoid (f p) => Monoid (M1 i c f p) @since base-4.12.0.0 Instance detailsDefined in GHC.Internal.Generics Methodsmempty :: 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 a, Monoid b, Monoid c, Monoid d, Monoid e) => Monoid (a, b, c, d, e) @since base-2.01 Instance detailsDefined in GHC.Internal.Base Methodsmempty :: (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 #

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

An associative operation.

#### Examples

Expand
>>> [1,2,3] <> [4,5,6]
[1,2,3,4,5,6]

>>> Just [1, 2, 3] <> Just [4, 5, 6]
Just [1,2,3,4,5,6]

>>> putStr "Hello, " <> putStrLn "World!"
Hello, World!


newtype Dual a Source #

The dual of a Monoid, obtained by swapping the arguments of (<>).

Dual a <> Dual b == Dual (b <> a)

#### Examples

Expand
>>> Dual "Hello" <> Dual "World"
Dual {getDual = "WorldHello"}

>>> Dual (Dual "Hello") <> Dual (Dual "World")
Dual {getDual = Dual {getDual = "HelloWorld"}}


Constructors

 Dual FieldsgetDual :: a

#### Instances

Instances details
Source #

Since: base-4.8.0.0

Instance details

Methods

mzip :: Dual a -> Dual b -> Dual (a, b) Source #

mzipWith :: (a -> b -> c) -> Dual a -> Dual b -> Dual c Source #

munzip :: Dual (a, b) -> (Dual a, Dual b) Source #

Source #

Since: base-4.18.0.0

Instance details

Defined in Data.Foldable1

Methods

fold1 :: Semigroup m => Dual m -> m Source #

foldMap1 :: Semigroup m => (a -> m) -> Dual a -> m Source #

foldMap1' :: Semigroup m => (a -> m) -> Dual a -> m Source #

maximum :: Ord a => Dual a -> a Source #

minimum :: Ord a => Dual a -> a Source #

head :: Dual a -> a Source #

last :: Dual a -> a Source #

foldrMap1 :: (a -> b) -> (a -> b -> b) -> Dual a -> b Source #

foldlMap1' :: (a -> b) -> (b -> a -> b) -> Dual a -> b Source #

foldlMap1 :: (a -> b) -> (b -> a -> b) -> Dual a -> b Source #

foldrMap1' :: (a -> b) -> (a -> b -> b) -> Dual a -> b Source #

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

pure :: a -> Dual a Source #

(<*>) :: Dual (a -> b) -> Dual a -> Dual b Source #

liftA2 :: (a -> b -> c) -> Dual a -> Dual b -> Dual c Source #

(*>) :: Dual a -> Dual b -> Dual b Source #

(<*) :: Dual a -> Dual b -> Dual a Source #

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

fmap :: (a -> b) -> Dual a -> Dual b Source #

(<$) :: a -> Dual b -> Dual a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods (>>=) :: Dual a -> (a -> Dual b) -> Dual b Source # (>>) :: Dual a -> Dual b -> Dual b Source # return :: a -> Dual a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Control.Monad.Fix Methods mfix :: (a -> Dual a) -> Dual a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Foldable Methods fold :: Monoid m => Dual m -> m Source # foldMap :: Monoid m => (a -> m) -> Dual a -> m Source # foldMap' :: Monoid m => (a -> m) -> Dual a -> m Source # foldr :: (a -> b -> b) -> b -> Dual a -> b Source # foldr' :: (a -> b -> b) -> b -> Dual a -> b Source # foldl :: (b -> a -> b) -> b -> Dual a -> b Source # foldl' :: (b -> a -> b) -> b -> Dual a -> b Source # foldr1 :: (a -> a -> a) -> Dual a -> a Source # foldl1 :: (a -> a -> a) -> Dual a -> a Source # toList :: Dual a -> [a] Source # null :: Dual a -> Bool Source # length :: Dual a -> Int Source # elem :: Eq a => a -> Dual a -> Bool Source # maximum :: Ord a => Dual a -> a Source # minimum :: Ord a => Dual a -> a Source # sum :: Num a => Dual a -> a Source # product :: Num a => Dual a -> a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Traversable Methods traverse :: Applicative f => (a -> f b) -> Dual a -> f (Dual b) Source # sequenceA :: Applicative f => Dual (f a) -> f (Dual a) Source # mapM :: Monad m => (a -> m b) -> Dual a -> m (Dual b) Source # sequence :: Monad m => Dual (m a) -> m (Dual a) Source # Instance details Defined in GHC.Internal.Data.Semigroup.Internal Associated Types  type Rep1 Dual @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal type Rep1 Dual = D1 ('MetaData "Dual" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Dual" 'PrefixI 'True) (S1 ('MetaSel ('Just "getDual") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) Methods from1 :: Dual a -> Rep1 Dual a Source # to1 :: Rep1 Dual a -> Dual a Source # Monoid a => Monoid (Dual a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods mappend :: Dual a -> Dual a -> Dual a Source # mconcat :: [Dual a] -> Dual a Source # Semigroup a => Semigroup (Dual a) @since base-4.9.0.0 Instance details Defined in GHC.Internal.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 # Data a => Data (Dual a) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Data Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Dual a -> c (Dual a) Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Dual a) Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Dual a)) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Dual a)) Source # gmapT :: (forall b. Data b => b -> b) -> Dual a -> Dual a Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Dual a -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Dual a -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Dual a -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Dual a -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Dual a -> m (Dual a) Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Dual a -> m (Dual a) Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Dual a -> m (Dual a) Source # Bounded a => Bounded (Dual a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods Generic (Dual a) Instance details Defined in GHC.Internal.Data.Semigroup.Internal Associated Types  type Rep (Dual a) @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal type Rep (Dual a) = D1 ('MetaData "Dual" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Dual" 'PrefixI 'True) (S1 ('MetaSel ('Just "getDual") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) Methods from :: Dual a -> Rep (Dual a) x Source # to :: Rep (Dual a) x -> Dual a Source # Read a => Read (Dual a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods readsPrec :: Int -> ReadS (Dual a) Source # Show a => Show (Dual a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods showsPrec :: Int -> Dual a -> ShowS Source # show :: Dual a -> String Source # showList :: [Dual a] -> ShowS Source # Eq a => Eq (Dual a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods (==) :: Dual a -> Dual a -> Bool Source # (/=) :: Dual a -> Dual a -> Bool Source # Ord a => Ord (Dual a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods compare :: Dual a -> Dual a -> Ordering Source # (<) :: Dual a -> Dual a -> Bool Source # (<=) :: Dual a -> Dual a -> Bool Source # (>) :: Dual a -> Dual a -> Bool Source # (>=) :: Dual a -> Dual a -> Bool Source # max :: Dual a -> Dual a -> Dual a Source # min :: Dual a -> Dual a -> Dual a Source # type Rep1 Dual @since base-4.7.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal type Rep1 Dual = D1 ('MetaData "Dual" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Dual" 'PrefixI 'True) (S1 ('MetaSel ('Just "getDual") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) type Rep (Dual a) @since base-4.7.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal type Rep (Dual a) = D1 ('MetaData "Dual" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Dual" 'PrefixI 'True) (S1 ('MetaSel ('Just "getDual") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) newtype Endo a Source # The monoid of endomorphisms under composition. Endo f <> Endo g == Endo (f . g) #### Examples Expand >>> let computation = Endo ("Hello, " ++) <> Endo (++ "!") >>> appEndo computation "Haskell" "Hello, Haskell!"  >>> let computation = Endo (*3) <> Endo (+1) >>> appEndo computation 1 6  Constructors  Endo FieldsappEndo :: a -> a #### Instances Instances details Monoid (Endo a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods mappend :: Endo a -> Endo a -> Endo a Source # mconcat :: [Endo a] -> Endo a Source # @since base-4.9.0.0 Instance details Defined in GHC.Internal.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 # Generic (Endo a) Instance details Defined in GHC.Internal.Data.Semigroup.Internal Associated Types  type Rep (Endo a) @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal type Rep (Endo a) = D1 ('MetaData "Endo" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Endo" 'PrefixI 'True) (S1 ('MetaSel ('Just "appEndo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a -> a)))) Methods from :: Endo a -> Rep (Endo a) x Source # to :: Rep (Endo a) x -> Endo a Source # type Rep (Endo a) @since base-4.7.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal type Rep (Endo a) = D1 ('MetaData "Endo" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Endo" 'PrefixI 'True) (S1 ('MetaSel ('Just "appEndo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a -> a)))) # Bool wrappers newtype All Source # Boolean monoid under conjunction (&&). All x <> All y = All (x && y) #### Examples Expand >>> All True <> mempty <> All False) All {getAll = False}  >>> mconcat (map (\x -> All (even x)) [2,4,6,7,8]) All {getAll = False}  >>> All True <> mempty All {getAll = True}  Constructors  All FieldsgetAll :: Bool #### Instances Instances details @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods mappend :: All -> All -> All Source # mconcat :: [All] -> All Source # @since base-4.9.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods (<>) :: All -> All -> All Source # stimes :: Integral b => b -> All -> All Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.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 # 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 :: forall r r'. (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 # @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods Instance details Defined in GHC.Internal.Data.Semigroup.Internal Associated Types  type Rep All @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal 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))) Methods from :: All -> Rep All x Source # to :: Rep All x -> All Source # @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods showList :: [All] -> ShowS Source # @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods (==) :: All -> All -> Bool Source # (/=) :: All -> All -> Bool Source # @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods (<) :: All -> All -> Bool Source # (<=) :: All -> All -> Bool Source # (>) :: All -> All -> Bool Source # (>=) :: All -> All -> Bool Source # max :: All -> All -> All Source # min :: All -> All -> All Source # type Rep All @since base-4.7.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal 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))) newtype Any Source # Boolean monoid under disjunction (||). Any x <> Any y = Any (x || y) #### Examples Expand >>> Any True <> mempty <> Any False Any {getAny = True}  >>> mconcat (map (\x -> Any (even x)) [2,4,6,7,8]) Any {getAny = True}  >>> Any False <> mempty Any {getAny = False}  Constructors  Any FieldsgetAny :: Bool #### Instances Instances details @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods mappend :: Any -> Any -> Any Source # mconcat :: [Any] -> Any Source # @since base-4.9.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods (<>) :: Any -> Any -> Any Source # stimes :: Integral b => b -> Any -> Any Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.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 # 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 :: forall r r'. (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 # @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods Instance details Defined in GHC.Internal.Data.Semigroup.Internal Associated Types  type Rep Any @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal 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))) Methods from :: Any -> Rep Any x Source # to :: Rep Any x -> Any Source # @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods showList :: [Any] -> ShowS Source # @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods (==) :: Any -> Any -> Bool Source # (/=) :: Any -> Any -> Bool Source # @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods (<) :: Any -> Any -> Bool Source # (<=) :: Any -> Any -> Bool Source # (>) :: Any -> Any -> Bool Source # (>=) :: Any -> Any -> Bool Source # max :: Any -> Any -> Any Source # min :: Any -> Any -> Any Source # type Rep Any @since base-4.7.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal 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))) # Num wrappers newtype Sum a Source # Monoid under addition. Sum a <> Sum b = Sum (a + b) #### Examples Expand >>> Sum 1 <> Sum 2 <> mempty Sum {getSum = 3}  >>> mconcat [ Sum n | n <- [3 .. 9]] Sum {getSum = 42}  Constructors  Sum FieldsgetSum :: a #### Instances Instances details Source # Since: base-4.8.0.0 Instance details Defined in Control.Monad.Zip Methods mzip :: Sum a -> Sum b -> Sum (a, b) Source # mzipWith :: (a -> b -> c) -> Sum a -> Sum b -> Sum c Source # munzip :: Sum (a, b) -> (Sum a, Sum b) Source # Source # Since: base-4.18.0.0 Instance details Defined in Data.Foldable1 Methods fold1 :: Semigroup m => Sum m -> m Source # foldMap1 :: Semigroup m => (a -> m) -> Sum a -> m Source # foldMap1' :: Semigroup m => (a -> m) -> Sum a -> m Source # toNonEmpty :: Sum a -> NonEmpty a Source # maximum :: Ord a => Sum a -> a Source # minimum :: Ord a => Sum a -> a Source # head :: Sum a -> a Source # last :: Sum a -> a Source # foldrMap1 :: (a -> b) -> (a -> b -> b) -> Sum a -> b Source # foldlMap1' :: (a -> b) -> (b -> a -> b) -> Sum a -> b Source # foldlMap1 :: (a -> b) -> (b -> a -> b) -> Sum a -> b Source # foldrMap1' :: (a -> b) -> (a -> b -> b) -> Sum a -> b Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods pure :: a -> Sum a Source # (<*>) :: Sum (a -> b) -> Sum a -> Sum b Source # liftA2 :: (a -> b -> c) -> Sum a -> Sum b -> Sum c Source # (*>) :: Sum a -> Sum b -> Sum b Source # (<*) :: Sum a -> Sum b -> Sum a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods fmap :: (a -> b) -> Sum a -> Sum b Source # (<$) :: a -> Sum b -> Sum a Source #

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

(>>=) :: Sum a -> (a -> Sum b) -> Sum b Source #

(>>) :: Sum a -> Sum b -> Sum b Source #

return :: a -> Sum a Source #

@since base-4.8.0.0

Instance details

Methods

mfix :: (a -> Sum a) -> Sum a Source #

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Foldable

Methods

fold :: Monoid m => Sum m -> m Source #

foldMap :: Monoid m => (a -> m) -> Sum a -> m Source #

foldMap' :: Monoid m => (a -> m) -> Sum a -> m Source #

foldr :: (a -> b -> b) -> b -> Sum a -> b Source #

foldr' :: (a -> b -> b) -> b -> Sum a -> b Source #

foldl :: (b -> a -> b) -> b -> Sum a -> b Source #

foldl' :: (b -> a -> b) -> b -> Sum a -> b Source #

foldr1 :: (a -> a -> a) -> Sum a -> a Source #

foldl1 :: (a -> a -> a) -> Sum a -> a Source #

toList :: Sum a -> [a] Source #

null :: Sum a -> Bool Source #

length :: Sum a -> Int Source #

elem :: Eq a => a -> Sum a -> Bool Source #

maximum :: Ord a => Sum a -> a Source #

minimum :: Ord a => Sum a -> a Source #

sum :: Num a => Sum a -> a Source #

product :: Num a => Sum a -> a Source #

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Traversable

Methods

traverse :: Applicative f => (a -> f b) -> Sum a -> f (Sum b) Source #

sequenceA :: Applicative f => Sum (f a) -> f (Sum a) Source #

mapM :: Monad m => (a -> m b) -> Sum a -> m (Sum b) Source #

sequence :: Monad m => Sum (m a) -> m (Sum a) Source #

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Associated Types

 type Rep1 Sum @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal type Rep1 Sum = D1 ('MetaData "Sum" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Sum" 'PrefixI 'True) (S1 ('MetaSel ('Just "getSum") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))

Methods

from1 :: Sum a -> Rep1 Sum a Source #

to1 :: Rep1 Sum a -> Sum a Source #

Num a => Monoid (Sum a)

@since base-2.01

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

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

mconcat :: [Sum a] -> Sum a Source #

Num a => Semigroup (Sum a)

@since base-4.9.0.0

Instance details

Defined in GHC.Internal.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 #

Data a => Data (Sum a)

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Data

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Sum a -> c (Sum a) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Sum a) Source #

toConstr :: Sum a -> Constr Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Sum a)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Sum a)) Source #

gmapT :: (forall b. Data b => b -> b) -> Sum a -> Sum a Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Sum a -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Sum a -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Sum a -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Sum a -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Sum a -> m (Sum a) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Sum a -> m (Sum a) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Sum a -> m (Sum a) Source #

Bounded a => Bounded (Sum a)

@since base-2.01

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

Generic (Sum a)
Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Associated Types

 type Rep (Sum a) @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal type Rep (Sum a) = D1 ('MetaData "Sum" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Sum" 'PrefixI 'True) (S1 ('MetaSel ('Just "getSum") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

Methods

from :: Sum a -> Rep (Sum a) x Source #

to :: Rep (Sum a) x -> Sum a Source #

Num a => Num (Sum a)

@since base-4.7.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

(+) :: Sum a -> Sum a -> Sum a Source #

(-) :: Sum a -> Sum a -> Sum a Source #

(*) :: Sum a -> Sum a -> Sum a Source #

negate :: Sum a -> Sum a Source #

abs :: Sum a -> Sum a Source #

signum :: Sum a -> Sum a Source #

@since base-2.01

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

Show a => Show (Sum a)

@since base-2.01

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

showsPrec :: Int -> Sum a -> ShowS Source #

show :: Sum a -> String Source #

showList :: [Sum a] -> ShowS Source #

Eq a => Eq (Sum a)

@since base-2.01

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

(==) :: Sum a -> Sum a -> Bool Source #

(/=) :: Sum a -> Sum a -> Bool Source #

Ord a => Ord (Sum a)

@since base-2.01

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

compare :: Sum a -> Sum a -> Ordering Source #

(<) :: Sum a -> Sum a -> Bool Source #

(<=) :: Sum a -> Sum a -> Bool Source #

(>) :: Sum a -> Sum a -> Bool Source #

(>=) :: Sum a -> Sum a -> Bool Source #

max :: Sum a -> Sum a -> Sum a Source #

min :: Sum a -> Sum a -> Sum a Source #

type Rep1 Sum

@since base-4.7.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

type Rep1 Sum = D1 ('MetaData "Sum" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Sum" 'PrefixI 'True) (S1 ('MetaSel ('Just "getSum") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
type Rep (Sum a)

@since base-4.7.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

type Rep (Sum a) = D1 ('MetaData "Sum" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Sum" 'PrefixI 'True) (S1 ('MetaSel ('Just "getSum") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

newtype Product a Source #

Monoid under multiplication.

Product x <> Product y == Product (x * y)

#### Examples

Expand
>>> Product 3 <> Product 4 <> mempty
Product {getProduct = 12}

>>> mconcat [ Product n | n <- [2 .. 10]]
Product {getProduct = 3628800}


Constructors

 Product FieldsgetProduct :: a

#### Instances

Instances details
Source #

Since: base-4.8.0.0

Instance details

Methods

mzip :: Product a -> Product b -> Product (a, b) Source #

mzipWith :: (a -> b -> c) -> Product a -> Product b -> Product c Source #

munzip :: Product (a, b) -> (Product a, Product b) Source #

Source #

Since: base-4.18.0.0

Instance details

Defined in Data.Foldable1

Methods

fold1 :: Semigroup m => Product m -> m Source #

foldMap1 :: Semigroup m => (a -> m) -> Product a -> m Source #

foldMap1' :: Semigroup m => (a -> m) -> Product a -> m Source #

maximum :: Ord a => Product a -> a Source #

minimum :: Ord a => Product a -> a Source #

head :: Product a -> a Source #

last :: Product a -> a Source #

foldrMap1 :: (a -> b) -> (a -> b -> b) -> Product a -> b Source #

foldlMap1' :: (a -> b) -> (b -> a -> b) -> Product a -> b Source #

foldlMap1 :: (a -> b) -> (b -> a -> b) -> Product a -> b Source #

foldrMap1' :: (a -> b) -> (a -> b -> b) -> Product a -> b Source #

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

pure :: a -> Product a Source #

(<*>) :: Product (a -> b) -> Product a -> Product b Source #

liftA2 :: (a -> b -> c) -> Product a -> Product b -> Product c Source #

(*>) :: Product a -> Product b -> Product b Source #

(<*) :: Product a -> Product b -> Product a Source #

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

fmap :: (a -> b) -> Product a -> Product b Source #

(<$) :: a -> Product b -> Product a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods (>>=) :: Product a -> (a -> Product b) -> Product b Source # (>>) :: Product a -> Product b -> Product b Source # return :: a -> Product a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Control.Monad.Fix Methods mfix :: (a -> Product a) -> Product a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Foldable Methods fold :: Monoid m => Product m -> m Source # foldMap :: Monoid m => (a -> m) -> Product a -> m Source # foldMap' :: Monoid m => (a -> m) -> Product a -> m Source # foldr :: (a -> b -> b) -> b -> Product a -> b Source # foldr' :: (a -> b -> b) -> b -> Product a -> b Source # foldl :: (b -> a -> b) -> b -> Product a -> b Source # foldl' :: (b -> a -> b) -> b -> Product a -> b Source # foldr1 :: (a -> a -> a) -> Product a -> a Source # foldl1 :: (a -> a -> a) -> Product a -> a Source # toList :: Product a -> [a] Source # null :: Product a -> Bool Source # length :: Product a -> Int Source # elem :: Eq a => a -> Product a -> Bool Source # maximum :: Ord a => Product a -> a Source # minimum :: Ord a => Product a -> a Source # sum :: Num a => Product a -> a Source # product :: Num a => Product a -> a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Traversable Methods traverse :: Applicative f => (a -> f b) -> Product a -> f (Product b) Source # sequenceA :: Applicative f => Product (f a) -> f (Product a) Source # mapM :: Monad m => (a -> m b) -> Product a -> m (Product b) Source # sequence :: Monad m => Product (m a) -> m (Product a) Source # Instance details Defined in GHC.Internal.Data.Semigroup.Internal Associated Types  type Rep1 Product @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal type Rep1 Product = D1 ('MetaData "Product" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Product" 'PrefixI 'True) (S1 ('MetaSel ('Just "getProduct") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) Methods to1 :: Rep1 Product a -> Product a Source # Num a => Monoid (Product a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods mappend :: Product a -> Product a -> Product a Source # mconcat :: [Product a] -> Product a Source # Num a => Semigroup (Product a) @since base-4.9.0.0 Instance details Defined in GHC.Internal.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 # Data a => Data (Product a) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Data Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Product a -> c (Product a) Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Product a) Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Product a)) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Product a)) Source # gmapT :: (forall b. Data b => b -> b) -> Product a -> Product a Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Product a -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Product a -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Product a -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Product a -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Product a -> m (Product a) Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Product a -> m (Product a) Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Product a -> m (Product a) Source # Bounded a => Bounded (Product a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods Instance details Defined in GHC.Internal.Data.Semigroup.Internal Associated Types  type Rep (Product a) @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal type Rep (Product a) = D1 ('MetaData "Product" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Product" 'PrefixI 'True) (S1 ('MetaSel ('Just "getProduct") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) Methods from :: Product a -> Rep (Product a) x Source # to :: Rep (Product a) x -> Product a Source # Num a => Num (Product a) @since base-4.7.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Read a => Read (Product a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods Show a => Show (Product a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Eq a => Eq (Product a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods (==) :: Product a -> Product a -> Bool Source # (/=) :: Product a -> Product a -> Bool Source # Ord a => Ord (Product a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Semigroup.Internal type Rep1 Product @since base-4.7.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal type Rep1 Product = D1 ('MetaData "Product" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Product" 'PrefixI 'True) (S1 ('MetaSel ('Just "getProduct") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) type Rep (Product a) @since base-4.7.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal type Rep (Product a) = D1 ('MetaData "Product" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Product" 'PrefixI 'True) (S1 ('MetaSel ('Just "getProduct") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) # Maybe wrappers newtype First a Source # Maybe monoid returning the leftmost non-Nothing value. First a is isomorphic to Alt Maybe a, but precedes it historically. Beware that Data.Monoid.First is different from Data.Semigroup.First. The former returns the first non-Nothing, so Data.Monoid.First Nothing <> x = x. The latter simply returns the first value, thus Data.Semigroup.First Nothing <> x = Data.Semigroup.First Nothing. #### Examples Expand >>> First (Just "hello") <> First Nothing <> First (Just "world") First {getFirst = Just "hello"}  >>> First Nothing <> mempty First {getFirst = Nothing}  Constructors  First FieldsgetFirst :: Maybe a #### Instances Instances details Source # Since: base-4.8.0.0 Instance details Defined in Control.Monad.Zip Methods mzip :: First a -> First b -> First (a, b) Source # mzipWith :: (a -> b -> c) -> First a -> First b -> First c Source # munzip :: First (a, b) -> (First a, First b) Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Monoid Methods pure :: a -> First a Source # (<*>) :: First (a -> b) -> First a -> First b Source # liftA2 :: (a -> b -> c) -> First a -> First b -> First c Source # (*>) :: First a -> First b -> First b Source # (<*) :: First a -> First b -> First a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Monoid Methods fmap :: (a -> b) -> First a -> First b Source # (<$) :: a -> First b -> First a Source #

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

(>>=) :: First a -> (a -> First b) -> First b Source #

(>>) :: First a -> First b -> First b Source #

return :: a -> First a Source #

@since base-4.8.0.0

Instance details

Methods

mfix :: (a -> First a) -> First a Source #

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Foldable

Methods

fold :: Monoid m => First m -> m Source #

foldMap :: Monoid m => (a -> m) -> First a -> m Source #

foldMap' :: Monoid m => (a -> m) -> First a -> m Source #

foldr :: (a -> b -> b) -> b -> First a -> b Source #

foldr' :: (a -> b -> b) -> b -> First a -> b Source #

foldl :: (b -> a -> b) -> b -> First a -> b Source #

foldl' :: (b -> a -> b) -> b -> First a -> b Source #

foldr1 :: (a -> a -> a) -> First a -> a Source #

foldl1 :: (a -> a -> a) -> First a -> a Source #

toList :: First a -> [a] Source #

null :: First a -> Bool Source #

length :: First a -> Int Source #

elem :: Eq a => a -> First a -> Bool Source #

maximum :: Ord a => First a -> a Source #

minimum :: Ord a => First a -> a Source #

sum :: Num a => First a -> a Source #

product :: Num a => First a -> a Source #

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Traversable

Methods

traverse :: Applicative f => (a -> f b) -> First a -> f (First b) Source #

sequenceA :: Applicative f => First (f a) -> f (First a) Source #

mapM :: Monad m => (a -> m b) -> First a -> m (First b) Source #

sequence :: Monad m => First (m a) -> m (First a) Source #

Instance details

Defined in GHC.Internal.Data.Monoid

Associated Types

 type Rep1 First @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Monoid type Rep1 First = D1 ('MetaData "First" "GHC.Internal.Data.Monoid" "ghc-internal" 'True) (C1 ('MetaCons "First" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFirst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Maybe)))

Methods

from1 :: First a -> Rep1 First a Source #

to1 :: Rep1 First a -> First a Source #

Monoid (First a)

@since base-2.01

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

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

mconcat :: [First a] -> First a Source #

@since base-4.9.0.0

Instance details

Defined in GHC.Internal.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 #

Data a => Data (First a)

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Data

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> First a -> c (First a) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (First a) Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (First a)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (First a)) Source #

gmapT :: (forall b. Data b => b -> b) -> First a -> First a Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> First a -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> First a -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> First a -> m (First a) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> First a -> m (First a) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> First a -> m (First a) Source #

Generic (First a)
Instance details

Defined in GHC.Internal.Data.Monoid

Associated Types

 type Rep (First a) @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Monoid type Rep (First a) = D1 ('MetaData "First" "GHC.Internal.Data.Monoid" "ghc-internal" 'True) (C1 ('MetaCons "First" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFirst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a))))

Methods

from :: First a -> Rep (First a) x Source #

to :: Rep (First a) x -> First a Source #

@since base-2.01

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

Show a => Show (First a)

@since base-2.01

Instance details

Defined in GHC.Internal.Data.Monoid

Eq a => Eq (First a)

@since base-2.01

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

(==) :: First a -> First a -> Bool Source #

(/=) :: First a -> First a -> Bool Source #

Ord a => Ord (First a)

@since base-2.01

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

compare :: First a -> First a -> Ordering Source #

(<) :: First a -> First a -> Bool Source #

(<=) :: First a -> First a -> Bool Source #

(>) :: First a -> First a -> Bool Source #

(>=) :: First a -> First a -> Bool Source #

max :: First a -> First a -> First a Source #

min :: First a -> First a -> First a Source #

type Rep1 First

@since base-4.7.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

type Rep1 First = D1 ('MetaData "First" "GHC.Internal.Data.Monoid" "ghc-internal" 'True) (C1 ('MetaCons "First" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFirst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Maybe)))
type Rep (First a)

@since base-4.7.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

type Rep (First a) = D1 ('MetaData "First" "GHC.Internal.Data.Monoid" "ghc-internal" 'True) (C1 ('MetaCons "First" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFirst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a))))

newtype Last a Source #

Maybe monoid returning the rightmost non-Nothing value.

Last a is isomorphic to Dual (First a), and thus to Dual (Alt Maybe a)

Data.Semigroup.Last. The former returns the last non-Nothing, so x <> Data.Monoid.Last Nothing = x. The latter simply returns the last value, thus x <> Data.Semigroup.Last Nothing = Data.Semigroup.Last Nothing.

#### Examples

Expand
>>> Last (Just "hello") <> Last Nothing <> Last (Just "world")
Last {getLast = Just "world"}

>>> Last Nothing <> mempty
Last {getLast = Nothing}


Constructors

 Last FieldsgetLast :: Maybe a

#### Instances

Instances details
Source #

Since: base-4.8.0.0

Instance details

Methods

mzip :: Last a -> Last b -> Last (a, b) Source #

mzipWith :: (a -> b -> c) -> Last a -> Last b -> Last c Source #

munzip :: Last (a, b) -> (Last a, Last b) Source #

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

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 #

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

fmap :: (a -> b) -> Last a -> Last b Source #

(<$) :: a -> Last b -> Last a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Monoid Methods (>>=) :: Last a -> (a -> Last b) -> Last b Source # (>>) :: Last a -> Last b -> Last b Source # return :: a -> Last a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Control.Monad.Fix Methods mfix :: (a -> Last a) -> Last a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Foldable Methods fold :: Monoid m => Last m -> m Source # foldMap :: Monoid m => (a -> m) -> Last a -> m Source # foldMap' :: Monoid m => (a -> m) -> Last a -> m Source # foldr :: (a -> b -> b) -> b -> Last a -> b Source # foldr' :: (a -> b -> b) -> b -> Last a -> b Source # foldl :: (b -> a -> b) -> b -> Last a -> b Source # foldl' :: (b -> a -> b) -> b -> Last a -> b Source # foldr1 :: (a -> a -> a) -> Last a -> a Source # foldl1 :: (a -> a -> a) -> Last a -> a Source # toList :: Last a -> [a] Source # null :: Last a -> Bool Source # length :: Last a -> Int Source # elem :: Eq a => a -> Last a -> Bool Source # maximum :: Ord a => Last a -> a Source # minimum :: Ord a => Last a -> a Source # sum :: Num a => Last a -> a Source # product :: Num a => Last a -> a Source # @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Traversable Methods traverse :: Applicative f => (a -> f b) -> Last a -> f (Last b) Source # sequenceA :: Applicative f => Last (f a) -> f (Last a) Source # mapM :: Monad m => (a -> m b) -> Last a -> m (Last b) Source # sequence :: Monad m => Last (m a) -> m (Last a) Source # Instance details Defined in GHC.Internal.Data.Monoid Associated Types  type Rep1 Last @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Monoid type Rep1 Last = D1 ('MetaData "Last" "GHC.Internal.Data.Monoid" "ghc-internal" 'True) (C1 ('MetaCons "Last" 'PrefixI 'True) (S1 ('MetaSel ('Just "getLast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Maybe))) Methods from1 :: Last a -> Rep1 Last a Source # to1 :: Rep1 Last a -> Last a Source # Monoid (Last a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Monoid Methods mappend :: Last a -> Last a -> Last a Source # mconcat :: [Last a] -> Last a Source # @since base-4.9.0.0 Instance details Defined in GHC.Internal.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 # Data a => Data (Last a) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Data Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Last a -> c (Last a) Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Last a) Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Last a)) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Last a)) Source # gmapT :: (forall b. Data b => b -> b) -> Last a -> Last a Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Last a -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Last a -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) Source # Generic (Last a) Instance details Defined in GHC.Internal.Data.Monoid Associated Types  type Rep (Last a) @since base-4.7.0.0 Instance detailsDefined in GHC.Internal.Data.Monoid type Rep (Last a) = D1 ('MetaData "Last" "GHC.Internal.Data.Monoid" "ghc-internal" 'True) (C1 ('MetaCons "Last" 'PrefixI 'True) (S1 ('MetaSel ('Just "getLast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a)))) Methods from :: Last a -> Rep (Last a) x Source # to :: Rep (Last a) x -> Last a Source # Read a => Read (Last a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Monoid Methods readsPrec :: Int -> ReadS (Last a) Source # Show a => Show (Last a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Monoid Methods showsPrec :: Int -> Last a -> ShowS Source # show :: Last a -> String Source # showList :: [Last a] -> ShowS Source # Eq a => Eq (Last a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Monoid Methods (==) :: Last a -> Last a -> Bool Source # (/=) :: Last a -> Last a -> Bool Source # Ord a => Ord (Last a) @since base-2.01 Instance details Defined in GHC.Internal.Data.Monoid Methods compare :: Last a -> Last a -> Ordering Source # (<) :: Last a -> Last a -> Bool Source # (<=) :: Last a -> Last a -> Bool Source # (>) :: Last a -> Last a -> Bool Source # (>=) :: Last a -> Last a -> Bool Source # max :: Last a -> Last a -> Last a Source # min :: Last a -> Last a -> Last a Source # type Rep1 Last @since base-4.7.0.0 Instance details Defined in GHC.Internal.Data.Monoid type Rep1 Last = D1 ('MetaData "Last" "GHC.Internal.Data.Monoid" "ghc-internal" 'True) (C1 ('MetaCons "Last" 'PrefixI 'True) (S1 ('MetaSel ('Just "getLast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Maybe))) type Rep (Last a) @since base-4.7.0.0 Instance details Defined in GHC.Internal.Data.Monoid type Rep (Last a) = D1 ('MetaData "Last" "GHC.Internal.Data.Monoid" "ghc-internal" 'True) (C1 ('MetaCons "Last" 'PrefixI 'True) (S1 ('MetaSel ('Just "getLast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a)))) # Alternative wrapper newtype Alt (f :: k -> Type) (a :: k) Source # Monoid under <|>. Alt l <> Alt r == Alt (l <|> r) #### Examples Expand >>> Alt (Just 12) <> Alt (Just 24) Alt {getAlt = Just 12}  >>> Alt Nothing <> Alt (Just 24) Alt {getAlt = Just 24}  @since base-4.8.0.0 Constructors  Alt FieldsgetAlt :: f a #### Instances Instances details Generic1 (Alt f :: k -> Type) Instance details Defined in GHC.Internal.Data.Semigroup.Internal Associated Types  type Rep1 (Alt f :: k -> Type) @since base-4.8.0.0 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal type Rep1 (Alt f :: k -> Type) = D1 ('MetaData "Alt" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Alt" 'PrefixI 'True) (S1 ('MetaSel ('Just "getAlt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f))) Methods from1 :: forall (a :: k). Alt f a -> Rep1 (Alt f) a Source # to1 :: forall (a :: k). Rep1 (Alt f) a -> Alt f a Source # MonadZip f => MonadZip (Alt f) Source # Since: base-4.8.0.0 Instance details Defined in Control.Monad.Zip Methods mzip :: Alt f a -> Alt f b -> Alt f (a, b) Source # mzipWith :: (a -> b -> c) -> Alt f a -> Alt f b -> Alt f c Source # munzip :: Alt f (a, b) -> (Alt f a, Alt f b) Source # Foldable1 f => Foldable1 (Alt f) Source # Since: base-4.18.0.0 Instance details Defined in Data.Foldable1 Methods fold1 :: Semigroup m => Alt f m -> m Source # foldMap1 :: Semigroup m => (a -> m) -> Alt f a -> m Source # foldMap1' :: Semigroup m => (a -> m) -> Alt f a -> m Source # toNonEmpty :: Alt f a -> NonEmpty a Source # maximum :: Ord a => Alt f a -> a Source # minimum :: Ord a => Alt f a -> a Source # head :: Alt f a -> a Source # last :: Alt f a -> a Source # foldrMap1 :: (a -> b) -> (a -> b -> b) -> Alt f a -> b Source # foldlMap1' :: (a -> b) -> (b -> a -> b) -> Alt f a -> b Source # foldlMap1 :: (a -> b) -> (b -> a -> b) -> Alt f a -> b Source # foldrMap1' :: (a -> b) -> (a -> b -> b) -> Alt f a -> b Source # Source # Instance details Defined in Data.Functor.Contravariant Methods contramap :: (a' -> a) -> Alt f a -> Alt f a' Source # (>$) :: b -> Alt f b -> Alt f a Source #

Alternative f => Alternative (Alt f)

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

empty :: Alt f a Source #

(<|>) :: Alt f a -> Alt f a -> Alt f a Source #

some :: Alt f a -> Alt f [a] Source #

many :: Alt f a -> Alt f [a] Source #

Applicative f => Applicative (Alt f)

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

pure :: a -> Alt f a Source #

(<*>) :: Alt f (a -> b) -> Alt f a -> Alt f b Source #

liftA2 :: (a -> b -> c) -> Alt f a -> Alt f b -> Alt f c Source #

(*>) :: Alt f a -> Alt f b -> Alt f b Source #

(<*) :: Alt f a -> Alt f b -> Alt f a Source #

Functor f => Functor (Alt f)

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

fmap :: (a -> b) -> Alt f a -> Alt f b Source #

(<$) :: a -> Alt f b -> Alt f a Source # Monad f => Monad (Alt f) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods (>>=) :: Alt f a -> (a -> Alt f b) -> Alt f b Source # (>>) :: Alt f a -> Alt f b -> Alt f b Source # return :: a -> Alt f a Source # MonadPlus f => MonadPlus (Alt f) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods mzero :: Alt f a Source # mplus :: Alt f a -> Alt f a -> Alt f a Source # MonadFix f => MonadFix (Alt f) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Control.Monad.Fix Methods mfix :: (a -> Alt f a) -> Alt f a Source # Foldable f => Foldable (Alt f) @since base-4.12.0.0 Instance details Defined in GHC.Internal.Data.Foldable Methods fold :: Monoid m => Alt f m -> m Source # foldMap :: Monoid m => (a -> m) -> Alt f a -> m Source # foldMap' :: Monoid m => (a -> m) -> Alt f a -> m Source # foldr :: (a -> b -> b) -> b -> Alt f a -> b Source # foldr' :: (a -> b -> b) -> b -> Alt f a -> b Source # foldl :: (b -> a -> b) -> b -> Alt f a -> b Source # foldl' :: (b -> a -> b) -> b -> Alt f a -> b Source # foldr1 :: (a -> a -> a) -> Alt f a -> a Source # foldl1 :: (a -> a -> a) -> Alt f a -> a Source # toList :: Alt f a -> [a] Source # null :: Alt f a -> Bool Source # length :: Alt f a -> Int Source # elem :: Eq a => a -> Alt f a -> Bool Source # maximum :: Ord a => Alt f a -> a Source # minimum :: Ord a => Alt f a -> a Source # sum :: Num a => Alt f a -> a Source # product :: Num a => Alt f a -> a Source # Traversable f => Traversable (Alt f) @since base-4.12.0.0 Instance details Defined in GHC.Internal.Data.Traversable Methods traverse :: Applicative f0 => (a -> f0 b) -> Alt f a -> f0 (Alt f b) Source # sequenceA :: Applicative f0 => Alt f (f0 a) -> f0 (Alt f a) Source # mapM :: Monad m => (a -> m b) -> Alt f a -> m (Alt f b) Source # sequence :: Monad m => Alt f (m a) -> m (Alt f a) Source # Alternative f => Monoid (Alt f a) @since base-4.8.0.0 Instance details Defined in GHC.Internal.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 # Alternative f => Semigroup (Alt f a) @since base-4.9.0.0 Instance details Defined in GHC.Internal.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 # (Data (f a), Data a, Typeable f) => Data (Alt f a) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Data Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Alt f a -> c (Alt f a) Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Alt f a) Source # toConstr :: Alt f a -> Constr Source # dataTypeOf :: Alt f a -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Alt f a)) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Alt f a)) Source # gmapT :: (forall b. Data b => b -> b) -> Alt f a -> Alt f a Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Alt f a -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Alt f a -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Alt f a -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Alt f a -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Alt f a -> m (Alt f a) Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Alt f a -> m (Alt f a) Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Alt f a -> m (Alt f a) Source # Enum (f a) => Enum (Alt f a) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods succ :: Alt f a -> Alt f a Source # pred :: Alt f a -> Alt f a Source # toEnum :: Int -> Alt f a Source # fromEnum :: Alt f a -> Int Source # enumFrom :: Alt f a -> [Alt f a] Source # enumFromThen :: Alt f a -> Alt f a -> [Alt f a] Source # enumFromTo :: Alt f a -> Alt f a -> [Alt f a] Source # enumFromThenTo :: Alt f a -> Alt f a -> Alt f a -> [Alt f a] Source # Generic (Alt f a) Instance details Defined in GHC.Internal.Data.Semigroup.Internal Associated Types  type Rep (Alt f a) @since base-4.8.0.0 Instance detailsDefined in GHC.Internal.Data.Semigroup.Internal type Rep (Alt f a) = D1 ('MetaData "Alt" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Alt" 'PrefixI 'True) (S1 ('MetaSel ('Just "getAlt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a)))) Methods from :: Alt f a -> Rep (Alt f a) x Source # to :: Rep (Alt f a) x -> Alt f a Source # Num (f a) => Num (Alt f a) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods (+) :: Alt f a -> Alt f a -> Alt f a Source # (-) :: Alt f a -> Alt f a -> Alt f a Source # (*) :: Alt f a -> Alt f a -> Alt f a Source # negate :: Alt f a -> Alt f a Source # abs :: Alt f a -> Alt f a Source # signum :: Alt f a -> Alt f a Source # fromInteger :: Integer -> Alt f a Source # Read (f a) => Read (Alt f a) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Show (f a) => Show (Alt f a) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods showsPrec :: Int -> Alt f a -> ShowS Source # show :: Alt f a -> String Source # showList :: [Alt f a] -> ShowS Source # Eq (f a) => Eq (Alt f a) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods (==) :: Alt f a -> Alt f a -> Bool Source # (/=) :: Alt f a -> Alt f a -> Bool Source # Ord (f a) => Ord (Alt f a) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal Methods compare :: Alt f a -> Alt f a -> Ordering Source # (<) :: Alt f a -> Alt f a -> Bool Source # (<=) :: Alt f a -> Alt f a -> Bool Source # (>) :: Alt f a -> Alt f a -> Bool Source # (>=) :: Alt f a -> Alt f a -> Bool Source # max :: Alt f a -> Alt f a -> Alt f a Source # min :: Alt f a -> Alt f a -> Alt f a Source # type Rep1 (Alt f :: k -> Type) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal type Rep1 (Alt f :: k -> Type) = D1 ('MetaData "Alt" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Alt" 'PrefixI 'True) (S1 ('MetaSel ('Just "getAlt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f))) type Rep (Alt f a) @since base-4.8.0.0 Instance details Defined in GHC.Internal.Data.Semigroup.Internal type Rep (Alt f a) = D1 ('MetaData "Alt" "GHC.Internal.Data.Semigroup.Internal" "ghc-internal" 'True) (C1 ('MetaCons "Alt" 'PrefixI 'True) (S1 ('MetaSel ('Just "getAlt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a)))) # Applicative wrapper newtype Ap (f :: k -> Type) (a :: k) Source # This data type witnesses the lifting of a Monoid into an Applicative pointwise. #### Examples Expand >>> Ap (Just [1, 2, 3]) <> Ap Nothing Ap {getAp = Nothing}  >>> Ap [Sum 10, Sum 20] <> Ap [Sum 1, Sum 2] Ap {getAp = [Sum {getSum = 11},Sum {getSum = 12},Sum {getSum = 21},Sum {getSum = 22}]}  @since base-4.12.0.0 Constructors  Ap FieldsgetAp :: f a #### Instances Instances details Generic1 (Ap f :: k -> Type) Instance details Defined in GHC.Internal.Data.Monoid Associated Types  type Rep1 (Ap f :: k -> Type) @since base-4.12.0.0 Instance detailsDefined in GHC.Internal.Data.Monoid type Rep1 (Ap f :: k -> Type) = D1 ('MetaData "Ap" "GHC.Internal.Data.Monoid" "ghc-internal" 'True) (C1 ('MetaCons "Ap" 'PrefixI 'True) (S1 ('MetaSel ('Just "getAp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f))) Methods from1 :: forall (a :: k). Ap f a -> Rep1 (Ap f) a Source # to1 :: forall (a :: k). Rep1 (Ap f) a -> Ap f a Source # Foldable1 f => Foldable1 (Ap f) Source # Since: base-4.18.0.0 Instance details Defined in Data.Foldable1 Methods fold1 :: Semigroup m => Ap f m -> m Source # foldMap1 :: Semigroup m => (a -> m) -> Ap f a -> m Source # foldMap1' :: Semigroup m => (a -> m) -> Ap f a -> m Source # toNonEmpty :: Ap f a -> NonEmpty a Source # maximum :: Ord a => Ap f a -> a Source # minimum :: Ord a => Ap f a -> a Source # head :: Ap f a -> a Source # last :: Ap f a -> a Source # foldrMap1 :: (a -> b) -> (a -> b -> b) -> Ap f a -> b Source # foldlMap1' :: (a -> b) -> (b -> a -> b) -> Ap f a -> b Source # foldlMap1 :: (a -> b) -> (b -> a -> b) -> Ap f a -> b Source # foldrMap1' :: (a -> b) -> (a -> b -> b) -> Ap f a -> b Source # Alternative f => Alternative (Ap f) @since base-4.12.0.0 Instance details Defined in GHC.Internal.Data.Monoid Methods empty :: Ap f a Source # (<|>) :: Ap f a -> Ap f a -> Ap f a Source # some :: Ap f a -> Ap f [a] Source # many :: Ap f a -> Ap f [a] Source # Applicative f => Applicative (Ap f) @since base-4.12.0.0 Instance details Defined in GHC.Internal.Data.Monoid Methods pure :: a -> Ap f a Source # (<*>) :: Ap f (a -> b) -> Ap f a -> Ap f b Source # liftA2 :: (a -> b -> c) -> Ap f a -> Ap f b -> Ap f c Source # (*>) :: Ap f a -> Ap f b -> Ap f b Source # (<*) :: Ap f a -> Ap f b -> Ap f a Source # Functor f => Functor (Ap f) @since base-4.12.0.0 Instance details Defined in GHC.Internal.Data.Monoid Methods fmap :: (a -> b) -> Ap f a -> Ap f b Source # (<$) :: a -> Ap f b -> Ap f a Source #

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

(>>=) :: Ap f a -> (a -> Ap f b) -> Ap f b Source #

(>>) :: Ap f a -> Ap f b -> Ap f b Source #

return :: a -> Ap f a Source #

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

mzero :: Ap f a Source #

mplus :: Ap f a -> Ap f a -> Ap f a Source #

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

fail :: String -> Ap f a Source #

@since base-4.12.0.0

Instance details

Methods

mfix :: (a -> Ap f a) -> Ap f a Source #

Foldable f => Foldable (Ap f)

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Foldable

Methods

fold :: Monoid m => Ap f m -> m Source #

foldMap :: Monoid m => (a -> m) -> Ap f a -> m Source #

foldMap' :: Monoid m => (a -> m) -> Ap f a -> m Source #

foldr :: (a -> b -> b) -> b -> Ap f a -> b Source #

foldr' :: (a -> b -> b) -> b -> Ap f a -> b Source #

foldl :: (b -> a -> b) -> b -> Ap f a -> b Source #

foldl' :: (b -> a -> b) -> b -> Ap f a -> b Source #

foldr1 :: (a -> a -> a) -> Ap f a -> a Source #

foldl1 :: (a -> a -> a) -> Ap f a -> a Source #

toList :: Ap f a -> [a] Source #

null :: Ap f a -> Bool Source #

length :: Ap f a -> Int Source #

elem :: Eq a => a -> Ap f a -> Bool Source #

maximum :: Ord a => Ap f a -> a Source #

minimum :: Ord a => Ap f a -> a Source #

sum :: Num a => Ap f a -> a Source #

product :: Num a => Ap f a -> a Source #

Traversable f => Traversable (Ap f)

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Traversable

Methods

traverse :: Applicative f0 => (a -> f0 b) -> Ap f a -> f0 (Ap f b) Source #

sequenceA :: Applicative f0 => Ap f (f0 a) -> f0 (Ap f a) Source #

mapM :: Monad m => (a -> m b) -> Ap f a -> m (Ap f b) Source #

sequence :: Monad m => Ap f (m a) -> m (Ap f a) Source #

(Applicative f, Monoid a) => Monoid (Ap f a)

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.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 #

(Applicative f, Semigroup a) => Semigroup (Ap f a)

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.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 #

(Data (f a), Data a, Typeable f) => Data (Ap f a)

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Data

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ap f a -> c (Ap f a) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Ap f a) Source #

toConstr :: Ap f a -> Constr Source #

dataTypeOf :: Ap f a -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Ap f a)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Ap f a)) Source #

gmapT :: (forall b. Data b => b -> b) -> Ap f a -> Ap f a Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ap f a -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ap f a -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Ap f a -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Ap f a -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ap f a -> m (Ap f a) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ap f a -> m (Ap f a) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ap f a -> m (Ap f a) Source #

(Applicative f, Bounded a) => Bounded (Ap f a)

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

minBound :: Ap f a Source #

maxBound :: Ap f a Source #

Enum (f a) => Enum (Ap f a)

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

succ :: Ap f a -> Ap f a Source #

pred :: Ap f a -> Ap f a Source #

toEnum :: Int -> Ap f a Source #

fromEnum :: Ap f a -> Int Source #

enumFrom :: Ap f a -> [Ap f a] Source #

enumFromThen :: Ap f a -> Ap f a -> [Ap f a] Source #

enumFromTo :: Ap f a -> Ap f a -> [Ap f a] Source #

enumFromThenTo :: Ap f a -> Ap f a -> Ap f a -> [Ap f a] Source #

Generic (Ap f a)
Instance details

Defined in GHC.Internal.Data.Monoid

Associated Types

 type Rep (Ap f a) @since base-4.12.0.0 Instance detailsDefined in GHC.Internal.Data.Monoid type Rep (Ap f a) = D1 ('MetaData "Ap" "GHC.Internal.Data.Monoid" "ghc-internal" 'True) (C1 ('MetaCons "Ap" 'PrefixI 'True) (S1 ('MetaSel ('Just "getAp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))))

Methods

from :: Ap f a -> Rep (Ap f a) x Source #

to :: Rep (Ap f a) x -> Ap f a Source #

(Applicative f, Num a) => Num (Ap f a)

Note that even if the underlying Num and Applicative instances are lawful, for most Applicatives, this instance will not be lawful. If you use this instance with the list Applicative, the following customary laws will not hold:

Commutativity:

>>> Ap [10,20] + Ap [1,2]
Ap {getAp = [11,12,21,22]}
>>> Ap [1,2] + Ap [10,20]
Ap {getAp = [11,21,12,22]}


>>> Ap [] + negate (Ap [])
Ap {getAp = []}
>>> fromInteger 0 :: Ap [] Int
Ap {getAp = [0]}


Distributivity:

>>> Ap [1,2] * (3 + 4)
Ap {getAp = [7,14]}
>>> (Ap [1,2] * 3) + (Ap [1,2] * 4)
Ap {getAp = [7,11,10,14]}


@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

(+) :: Ap f a -> Ap f a -> Ap f a Source #

(-) :: Ap f a -> Ap f a -> Ap f a Source #

(*) :: Ap f a -> Ap f a -> Ap f a Source #

negate :: Ap f a -> Ap f a Source #

abs :: Ap f a -> Ap f a Source #

signum :: Ap f a -> Ap f a Source #

fromInteger :: Integer -> Ap f a Source #

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

Show (f a) => Show (Ap f a)

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

showsPrec :: Int -> Ap f a -> ShowS Source #

show :: Ap f a -> String Source #

showList :: [Ap f a] -> ShowS Source #

Eq (f a) => Eq (Ap f a)

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

(==) :: Ap f a -> Ap f a -> Bool Source #

(/=) :: Ap f a -> Ap f a -> Bool Source #

Ord (f a) => Ord (Ap f a)

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

compare :: Ap f a -> Ap f a -> Ordering Source #

(<) :: Ap f a -> Ap f a -> Bool Source #

(<=) :: Ap f a -> Ap f a -> Bool Source #

(>) :: Ap f a -> Ap f a -> Bool Source #

(>=) :: Ap f a -> Ap f a -> Bool Source #

max :: Ap f a -> Ap f a -> Ap f a Source #

min :: Ap f a -> Ap f a -> Ap f a Source #

type Rep1 (Ap f :: k -> Type)

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

type Rep1 (Ap f :: k -> Type) = D1 ('MetaData "Ap" "GHC.Internal.Data.Monoid" "ghc-internal" 'True) (C1 ('MetaCons "Ap" 'PrefixI 'True) (S1 ('MetaSel ('Just "getAp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)))
type Rep (Ap f a)

@since base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

type Rep (Ap f a) = D1 ('MetaData "Ap" "GHC.Internal.Data.Monoid" "ghc-internal" 'True) (C1 ('MetaCons "Ap" 'PrefixI 'True) (S1 ('MetaSel ('Just "getAp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))))