Data.Monoid

Copyright (c) Andy Gill 2001
(c) Oregon Graduate Institute of Science and Technology 2001
License BSD-style (see the file libraries/base/LICENSE)
Maintainer libraries@haskell.org
Stability stable
Portability portable
Safe Haskell Safe
Language Haskell2010

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:

>>> import Data.Int
>>> 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}

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

mempty | mconcat

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
Monoid ByteArray Source

Since: base-4.17.0.0

Instance details

Defined in Data.Array.Byte

Monoid All Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

mempty :: All Source

mappend :: All -> All -> All Source

mconcat :: [All] -> All Source

Monoid Any Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

mempty :: Any Source

mappend :: Any -> Any -> Any Source

mconcat :: [Any] -> Any Source

Monoid Event Source

Since: base-4.4.0.0

Instance details

Defined in GHC.Internal.Event.Internal.Types

Monoid EventLifetime Source

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Event.Internal.Types

Methods

mempty :: EventLifetime Source

mappend :: EventLifetime -> EventLifetime -> EventLifetime Source

mconcat :: [EventLifetime] -> EventLifetime Source

Monoid Lifetime Source

mappend takes the longer of two lifetimes.

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Event.Internal.Types

Monoid ExceptionContext Source
Instance details

Defined in GHC.Internal.Exception.Context

Monoid Ordering Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Base

Monoid () Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Base

Methods

mempty :: () Source

mappend :: () -> () -> () Source

mconcat :: [()] -> () Source

Monoid (Comparison a) Source

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

mempty :: Comparison a
mempty = Comparison _ _ -> EQ
Instance details

Defined in Data.Functor.Contravariant

Monoid (Equivalence a) Source

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

mempty :: Equivalence a
mempty = Equivalence _ _ -> True
Instance details

Defined in Data.Functor.Contravariant

Monoid (Predicate a) Source

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

mempty :: Predicate a
mempty = _ -> True
Instance details

Defined in Data.Functor.Contravariant

(Ord a, Bounded a) => Monoid (Max a) Source

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

mempty :: Max a Source

mappend :: Max a -> Max a -> Max a Source

mconcat :: [Max a] -> Max a Source

(Ord a, Bounded a) => Monoid (Min a) Source

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

mempty :: Min a Source

mappend :: Min a -> Min a -> Min a Source

mconcat :: [Min a] -> Min a Source

Monoid m => Monoid (WrappedMonoid m) Source

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Monoid a => Monoid (STM a) Source

Since: base-4.17.0.0

Instance details

Defined in GHC.Internal.Conc.Sync

Methods

mempty :: STM a Source

mappend :: STM a -> STM a -> STM a Source

mconcat :: [STM a] -> STM a Source

FiniteBits a => Monoid (And a) Source

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 details

Defined in GHC.Internal.Data.Bits

Methods

mempty :: And a Source

mappend :: And a -> And a -> And a Source

mconcat :: [And a] -> And a Source

FiniteBits a => Monoid (Iff a) Source

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 details

Defined in GHC.Internal.Data.Bits

Methods

mempty :: Iff a Source

mappend :: Iff a -> Iff a -> Iff a Source

mconcat :: [Iff a] -> Iff a Source

Bits a => Monoid (Ior a) Source

Since: base-4.16

Instance details

Defined in GHC.Internal.Data.Bits

Methods

mempty :: Ior a Source

mappend :: Ior a -> Ior a -> Ior a Source

mconcat :: [Ior a] -> Ior a Source

Bits a => Monoid (Xor a) Source

Since: base-4.16

Instance details

Defined in GHC.Internal.Data.Bits

Methods

mempty :: Xor a Source

mappend :: Xor a -> Xor a -> Xor a Source

mconcat :: [Xor a] -> Xor a Source

Monoid a => Monoid (Identity a) Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Identity

Ord a => Monoid (Max a) Source

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Utils

Methods

mempty :: Max a Source

mappend :: Max a -> Max a -> Max a Source

mconcat :: [Max a] -> Max a Source

Ord a => Monoid (Min a) Source

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Utils

Methods

mempty :: Min a Source

mappend :: Min a -> Min a -> Min a Source

mconcat :: [Min a] -> Min a Source

Monoid (First a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

mempty :: First a Source

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

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

Monoid (Last a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

mempty :: Last a Source

mappend :: Last a -> Last a -> Last a Source

mconcat :: [Last a] -> Last a Source

Monoid a => Monoid (Down a) Source

Since: base-4.11.0.0

Instance details

Defined in GHC.Internal.Data.Ord

Methods

mempty :: Down a Source

mappend :: Down a -> Down a -> Down a Source

mconcat :: [Down a] -> Down a Source

Monoid a => Monoid (Dual a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

mempty :: Dual a Source

mappend :: Dual a -> Dual a -> Dual a Source

mconcat :: [Dual a] -> Dual a Source

Monoid (Endo a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

mempty :: Endo a Source

mappend :: Endo a -> Endo a -> Endo a Source

mconcat :: [Endo a] -> Endo a Source

Num a => Monoid (Product a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Num a => Monoid (Sum a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

mempty :: Sum a Source

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

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

(Generic a, Monoid (Rep a ())) => Monoid (Generically a) Source

Since: base-4.17.0.0

Instance details

Defined in GHC.Internal.Generics

Monoid p => Monoid (Par1 p) Source

Since: base-4.12.0.0

Instance details

Defined in GHC.Internal.Generics

Methods

mempty :: Par1 p Source

mappend :: Par1 p -> Par1 p -> Par1 p Source

mconcat :: [Par1 p] -> Par1 p Source

Monoid a => Monoid (Q a) Source

Since: ghc-internal-2.17.0.0

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

mempty :: Q a Source

mappend :: Q a -> Q a -> Q a Source

mconcat :: [Q a] -> Q a Source

Monoid a => Monoid (IO a) Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Base

Methods

mempty :: IO a Source

mappend :: IO a -> IO a -> IO a Source

mconcat :: [IO a] -> IO a Source

Semigroup a => Monoid (Maybe a) Source

Lift a semigroup into Maybe forming a Monoid according to http://en.wikipedia.org/wiki/Monoid: "Any semigroup S may be turned into a monoid simply by adjoining an element e not in S and defining e*e = e and e*s = s = s*e for all s ∈ S."

Since 4.11.0: constraint on inner a value generalised from Monoid to Semigroup.

Since: base-2.1

Instance details

Defined in GHC.Internal.Base

Methods

mempty :: Maybe a Source

mappend :: Maybe a -> Maybe a -> Maybe a Source

mconcat :: [Maybe a] -> Maybe a Source

Monoid a => Monoid (Solo a) Source

Since: base-4.15

Instance details

Defined in GHC.Internal.Base

Methods

mempty :: Solo a Source

mappend :: Solo a -> Solo a -> Solo a Source

mconcat :: [Solo a] -> Solo a Source

Monoid [a] Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Base

Methods

mempty :: [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 details

Defined in Data.Functor.Contravariant

Methods

mempty :: 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) Source

Since: base-4.7.0.0

Instance details

Defined in GHC.Internal.Data.Proxy

Methods

mempty :: Proxy s Source

mappend :: Proxy s -> Proxy s -> Proxy s Source

mconcat :: [Proxy s] -> Proxy s Source

Monoid (U1 p) Source

Since: base-4.12.0.0

Instance details

Defined in GHC.Internal.Generics

Methods

mempty :: U1 p Source

mappend :: U1 p -> U1 p -> U1 p Source

mconcat :: [U1 p] -> U1 p Source

Monoid a => Monoid (ST s a) Source

Since: base-4.11.0.0

Instance details

Defined in GHC.Internal.ST

Methods

mempty :: ST s a Source

mappend :: ST s a -> ST s a -> ST s a Source

mconcat :: [ST s a] -> ST s a Source

(Monoid a, Monoid b) => Monoid (a, b) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Base

Methods

mempty :: (a, b) Source

mappend :: (a, b) -> (a, b) -> (a, b) Source

mconcat :: [(a, b)] -> (a, b) Source

Monoid b => Monoid (a -> b) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Base

Methods

mempty :: a -> b Source

mappend :: (a -> b) -> (a -> b) -> a -> b Source

mconcat :: [a -> b] -> a -> b Source

Monoid a => Monoid (Const a b) Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Const

Methods

mempty :: Const a b Source

mappend :: Const a b -> Const a b -> Const a b Source

mconcat :: [Const a b] -> Const a b Source

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

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

Alternative f => Monoid (Alt f a) Source

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

Monoid (f p) => Monoid (Rec1 f p) Source

Since: base-4.12.0.0

Instance details

Defined in GHC.Internal.Generics

Methods

mempty :: Rec1 f p Source

mappend :: Rec1 f p -> Rec1 f p -> Rec1 f p Source

mconcat :: [Rec1 f p] -> Rec1 f p Source

(Monoid a, Monoid b, Monoid c) => Monoid (a, b, c) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Base

Methods

mempty :: (a, b, c) Source

mappend :: (a, b, c) -> (a, b, c) -> (a, b, c) Source

mconcat :: [(a, b, c)] -> (a, b, c) Source

(Monoid (f a), Monoid (g a)) => Monoid (Product f g a) Source

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Product

Methods

mempty :: 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) Source

Since: base-4.12.0.0

Instance details

Defined in GHC.Internal.Generics

Methods

mempty :: (f :*: g) p Source

mappend :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p Source

mconcat :: [(f :*: g) p] -> (f :*: g) p Source

Monoid c => Monoid (K1 i c p) Source

Since: base-4.12.0.0

Instance details

Defined in GHC.Internal.Generics

Methods

mempty :: K1 i c p Source

mappend :: K1 i c p -> K1 i c p -> K1 i c p Source

mconcat :: [K1 i c p] -> K1 i c p Source

(Monoid a, Monoid b, Monoid c, Monoid d) => Monoid (a, b, c, d) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Base

Methods

mempty :: (a, b, c, d) Source

mappend :: (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) Source

mconcat :: [(a, b, c, d)] -> (a, b, c, d) Source

Monoid (f (g a)) => Monoid (Compose f g a) Source

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Compose

Methods

mempty :: 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) Source

Since: base-4.12.0.0

Instance details

Defined in GHC.Internal.Generics

Methods

mempty :: (f :.: g) p Source

mappend :: (f :.: g) p -> (f :.: g) p -> (f :.: g) p Source

mconcat :: [(f :.: g) p] -> (f :.: g) p Source

Monoid (f p) => Monoid (M1 i c f p) Source

Since: base-4.12.0.0

Instance details

Defined in GHC.Internal.Generics

Methods

mempty :: M1 i c f p Source

mappend :: M1 i c f p -> M1 i c f p -> M1 i c f p Source

mconcat :: [M1 i c f p] -> M1 i c f p Source

(Monoid a, Monoid b, Monoid c, Monoid d, Monoid e) => Monoid (a, b, c, d, e) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Base

Methods

mempty :: (a, b, c, d, e) Source

mappend :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) Source

mconcat :: [(a, b, c, d, e)] -> (a, b, c, d, e) Source

(<>) :: 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

Fields

Instances
Instances details
Foldable1 Dual 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

toNonEmpty :: Dual a -> NonEmpty a 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

Applicative Dual 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

Functor Dual 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

Monad Dual 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

MonadFix Dual Source

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Control.Monad.Fix

Methods

mfix :: (a -> Dual a) -> Dual a Source

MonadZip Dual Source

Since: ghc-internal-4.8.0.0

Instance details

Defined in GHC.Internal.Control.Monad.Zip

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

Foldable Dual 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

Traversable Dual 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

Generic1 Dual Source
Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Associated Types

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

Methods

from1 :: Dual a -> Rep1 Dual a Source

to1 :: Rep1 Dual a -> Dual a Source

Monoid a => Monoid (Dual a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

mempty :: Dual a Source

mappend :: Dual a -> Dual a -> Dual a Source

mconcat :: [Dual a] -> Dual a Source

Semigroup a => Semigroup (Dual a) Source

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

toConstr :: Dual a -> Constr Source

dataTypeOf :: Dual a -> DataType 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) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

minBound :: Dual a Source

maxBound :: Dual a Source

Generic (Dual a) Source
Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Associated Types

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

Methods

from :: Dual a -> Rep (Dual a) x Source

to :: Rep (Dual a) x -> Dual a Source

Read a => Read (Dual a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Show a => Show (Dual a) Source

Since: base-2.1

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) Source

Since: base-2.1

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) Source

Since: base-2.1

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 Source

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) Source

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

Fields

Instances
Instances details
Monoid (Endo a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

mempty :: Endo a Source

mappend :: Endo a -> Endo a -> Endo a Source

mconcat :: [Endo a] -> Endo a Source

Semigroup (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) Source
Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Associated Types

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

Methods

from :: Endo a -> Rep (Endo a) x Source

to :: Rep (Endo a) x -> Endo a Source

type Rep (Endo a) Source

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

Fields

Instances
Instances details
Monoid All Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

mempty :: All Source

mappend :: All -> All -> All Source

mconcat :: [All] -> All Source

Semigroup All Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

(<>) :: All -> All -> All Source

sconcat :: NonEmpty All -> All Source

stimes :: Integral b => b -> All -> All Source

Data 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

toConstr :: All -> Constr Source

dataTypeOf :: All -> DataType Source

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

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

gmapT :: (forall b. Data b => b -> b) -> All -> All Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> All -> r Source

gmapQr :: 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

Bounded All Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Generic All Source
Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Associated Types

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

Methods

from :: All -> Rep All x Source

to :: Rep All x -> All Source

Read All Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Show All Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

showsPrec :: Int -> All -> ShowS Source

show :: All -> String Source

showList :: [All] -> ShowS Source

Eq All Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

(==) :: All -> All -> Bool Source

(/=) :: All -> All -> Bool Source

Ord All Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

compare :: All -> All -> Ordering Source

(<) :: 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 Source

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

Fields

Instances
Instances details
Monoid Any Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

mempty :: Any Source

mappend :: Any -> Any -> Any Source

mconcat :: [Any] -> Any Source

Semigroup Any Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

(<>) :: Any -> Any -> Any Source

sconcat :: NonEmpty Any -> Any Source

stimes :: Integral b => b -> Any -> Any Source

Data 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

toConstr :: Any -> Constr Source

dataTypeOf :: Any -> DataType Source

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

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

gmapT :: (forall b. Data b => b -> b) -> Any -> Any Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Any -> r Source

gmapQr :: 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

Bounded Any Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Generic Any Source
Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Associated Types

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

Methods

from :: Any -> Rep Any x Source

to :: Rep Any x -> Any Source

Read Any Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Show Any Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

showsPrec :: Int -> Any -> ShowS Source

show :: Any -> String Source

showList :: [Any] -> ShowS Source

Eq Any Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

(==) :: Any -> Any -> Bool Source

(/=) :: Any -> Any -> Bool Source

Ord Any Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

compare :: Any -> Any -> Ordering Source

(<) :: 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 Source

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

Fields

Instances
Instances details
Foldable1 Sum 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

Applicative Sum 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

Functor Sum 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

Monad Sum 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

MonadFix Sum Source

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Control.Monad.Fix

Methods

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

MonadZip Sum Source

Since: ghc-internal-4.8.0.0

Instance details

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

Foldable Sum 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

Traversable Sum 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

Generic1 Sum Source
Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Associated Types

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

Methods

from1 :: Sum a -> Rep1 Sum a Source

to1 :: Rep1 Sum a -> Sum a Source

Num a => Monoid (Sum a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

mempty :: Sum a Source

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

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

Num a => Semigroup (Sum a) Source

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

dataTypeOf :: Sum a -> DataType 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) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

minBound :: Sum a Source

maxBound :: Sum a Source

Generic (Sum a) Source
Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Associated Types

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

Methods

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

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

Num a => Num (Sum a) Source

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

fromInteger :: Integer -> Sum a Source

Read a => Read (Sum a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Show a => Show (Sum a) Source

Since: base-2.1

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) Source

Since: base-2.1

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) Source

Since: base-2.1

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 Source

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) Source

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

Fields

Instances
Instances details
Foldable1 Product 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

toNonEmpty :: Product a -> NonEmpty a 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

Applicative Product 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

Functor Product 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

Monad Product 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

MonadFix Product Source

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Control.Monad.Fix

Methods

mfix :: (a -> Product a) -> Product a Source

MonadZip Product Source

Since: ghc-internal-4.8.0.0

Instance details

Defined in GHC.Internal.Control.Monad.Zip

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

Foldable Product 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

Traversable Product 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

Generic1 Product Source
Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Associated Types

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

Methods

from1 :: Product a -> Rep1 Product a Source

to1 :: Rep1 Product a -> Product a Source

Num a => Monoid (Product a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Num a => Semigroup (Product a) Source

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

toConstr :: Product a -> Constr Source

dataTypeOf :: Product a -> DataType 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) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Generic (Product a) Source
Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Associated Types

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

Methods

from :: Product a -> Rep (Product a) x Source

to :: Rep (Product a) x -> Product a Source

Num a => Num (Product a) Source

Since: base-4.7.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Read a => Read (Product a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Show a => Show (Product a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Eq a => Eq (Product a) Source

Since: base-2.1

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) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Methods

compare :: Product a -> Product a -> Ordering Source

(<) :: Product a -> Product a -> Bool Source

(<=) :: Product a -> Product a -> Bool Source

(>) :: Product a -> Product a -> Bool Source

(>=) :: Product a -> Product a -> Bool Source

max :: Product a -> Product a -> Product a Source

min :: Product a -> Product a -> Product a Source

type Rep1 Product Source

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) Source

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

Fields

Instances
Instances details
Applicative First 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

Functor First 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

Monad First 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

MonadFix First Source

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Control.Monad.Fix

Methods

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

MonadZip First Source

Since: ghc-internal-4.8.0.0

Instance details

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

Foldable First 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

Traversable First 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

Generic1 First Source
Instance details

Defined in GHC.Internal.Data.Monoid

Associated Types

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

Methods

from1 :: First a -> Rep1 First a Source

to1 :: Rep1 First a -> First a Source

Monoid (First a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

mempty :: First a Source

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

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

Semigroup (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) 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) -> 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

toConstr :: First a -> Constr Source

dataTypeOf :: First a -> DataType 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) Source
Instance details

Defined in GHC.Internal.Data.Monoid

Associated Types

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

Methods

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

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

Read a => Read (First a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Monoid

Show a => Show (First a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

showsPrec :: Int -> First a -> ShowS Source

show :: First a -> String Source

showList :: [First a] -> ShowS Source

Eq a => Eq (First a) Source

Since: base-2.1

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) Source

Since: base-2.1

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 Source

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) Source

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

Fields

Instances
Instances details
Applicative Last 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

Functor Last 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

Monad Last 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

MonadFix Last Source

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Control.Monad.Fix

Methods

mfix :: (a -> Last a) -> Last a Source

MonadZip Last Source

Since: ghc-internal-4.8.0.0

Instance details

Defined in GHC.Internal.Control.Monad.Zip

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

Foldable Last 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

Traversable Last 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

Generic1 Last Source
Instance details

Defined in GHC.Internal.Data.Monoid

Associated Types

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

Methods

from1 :: Last a -> Rep1 Last a Source

to1 :: Rep1 Last a -> Last a Source

Monoid (Last a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

mempty :: Last a Source

mappend :: Last a -> Last a -> Last a Source

mconcat :: [Last a] -> Last a Source

Semigroup (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) 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) -> 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

toConstr :: Last a -> Constr Source

dataTypeOf :: Last a -> DataType 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) Source
Instance details

Defined in GHC.Internal.Data.Monoid

Associated Types

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

Methods

from :: Last a -> Rep (Last a) x Source

to :: Rep (Last a) x -> Last a Source

Read a => Read (Last a) Source

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Monoid

Show a => Show (Last a) Source

Since: base-2.1

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) Source

Since: base-2.1

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) Source

Since: base-2.1

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 Source

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) Source

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

Fields

Instances
Instances details
Generic1 (Alt f :: k -> Type) Source
Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Associated Types

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

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

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

Contravariant f => Contravariant (Alt f) 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) Source

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) Source

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) Source

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) Source

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) Source

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) Source

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

MonadZip f => MonadZip (Alt f) Source

Since: ghc-internal-4.8.0.0

Instance details

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

Foldable f => Foldable (Alt f) Source

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) Source

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) Source

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) Source

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) 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) -> 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) Source

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) Source
Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Associated Types

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

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) Source

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) Source

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Show (f a) => Show (Alt f a) Source

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) Source

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) Source

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) Source

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) Source

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

Fields

Instances
Instances details
Generic1 (Ap f :: k -> Type) Source
Instance details

Defined in GHC.Internal.Data.Monoid

Associated Types

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

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) Source

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) Source

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) Source

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

Monad f => Monad (Ap f) 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

MonadPlus f => MonadPlus (Ap f) 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

MonadFail f => MonadFail (Ap f) Source

Since: base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

Methods

fail :: String -> Ap f a Source

MonadFix f => MonadFix (Ap f) Source

Since: base-4.12.0.0

Instance details

Defined in GHC.Internal.Control.Monad.Fix

Methods

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

Foldable f => Foldable (Ap f) Source

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) Source

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) Source

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) Source

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) Source

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) Source

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) Source

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) Source
Instance details

Defined in GHC.Internal.Data.Monoid

Associated Types

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

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) Source

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]}

Additive inverse:

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

Read (f a) => Read (Ap f a) Source

Since: base-4.12.0.0

Instance details

Defined in GHC.Internal.Data.Monoid

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

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) Source

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) Source

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) Source

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) Source

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

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/Data-Monoid.html