Spec-Zone.ru › Haskell 9

Data.Semigroup

Авторские права (C) 2011-2015 Edward Kmett
Лицензия в стиле BSD (см. файл LICENSE)
Сопровождающий libraries@haskell.org
Стабильность предварительная
Переносимость переносимый
Безопасный Haskell Trustworthy
Язык Haskell2010

Содержание

  • Полугруппы
  • Повторно экспортируемые моноиды
  • Разностные списки полугруппы
  • ArgMin, ArgMax

Описание

Тип a является Semigroup, если он предоставляет ассоциативную функцию (<>), которая позволяет объединить любые два значения типа a в одно. Ассоциативность означает, что всегда должно выполняться следующее:

(a <> b) <> c == a <> (b <> c)
Примеры
Развернуть

Экземпляр Semigroup класса Min для Int всегда выбирает меньшее число:

>>> Min 1 <> Min 2 <> Min 3 <> Min 4 :: Min Int
Min {getMin = 1}

Если нам нужно объединить несколько значений, мы можем использовать для этого функцию sconcat. Однако необходимо убедиться, что у нас есть хотя бы одно значение для обработки, иначе результат будет неопределённым. Именно поэтому sconcat использует Data.List.NonEmpty.NonEmpty — список, который никогда не бывает пустым:

>>> (1 :| [])
1 :| []
  • — эквивалентно [1], но гарантированно не пусто.
>>> (1 :| [2, 3, 4])
1 :| [2,3,4]
  • — эквивалентно [1,2,3,4], но гарантированно не пусто.

Имея в распоряжении эту гарантированно непустую структуру данных, мы можем объединять значения с помощью sconcat и выбранного нами Semigroup. Можно попробовать экземпляры Min и Max для Int, которые выбирают соответственно наименьшее и наибольшее число:

>>> sconcat (1 :| [2, 3, 4]) :: Min Int
Min {getMin = 1}
>>> sconcat (1 :| [2, 3, 4]) :: Max Int
Max {getMax = 4}

Конкатенация строк — ещё один пример экземпляра Semigroup:

>>> "foo" <> "bar"
"foobar"

Semigroup — это обобщение Monoid. Однако, в отличие от Semigroup, для Monoid требуется наличие нейтрального элемента (mempty) в дополнение к ассоциативному оператору. Требование нейтрального элемента не позволяет многим типам быть полноценными моноидами, например Data.List.NonEmpty.NonEmpty.

Обратите внимание, что использование (<>) в этом модуле конфликтует с оператором с тем же именем, экспортируемым из Data.Monoid. Однако этот пакет повторно экспортирует (большую часть) содержимого Data.Monoid, поэтому, чтобы использовать полугруппы и моноиды в одном пакете, просто

import Data.Semigroup

Начиная с: base-4.9.0.0

class Semigroup a where Источник

Класс полугрупп (типов с ассоциативной бинарной операцией).

Экземпляры должны удовлетворять следующему закону:

Ассоциативность
x <> (y <> z) = (x <> y) <> z

Вместо (<>) можно определить sconcat; в этом случае законами будут:

Единица
sconcat (pure x) = x
Умножение
sconcat (join xss) = sconcat (fmap sconcat xss)

Начиная с: base-4.9.0.0

Минимальное полное определение

(<>) | sconcat

Методы

(<>) :: a -> a -> a infixr 6 Источник

Ассоциативная операция.

Примеры
Развернуть
>>> [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!

sconcat :: NonEmpty a -> a Источник

Свернуть непустой список с помощью <>

Определения по умолчанию должно быть достаточно, но его можно переопределить для повышения эффективности.

Примеры
Развернуть

Для следующих примеров предположим, что у нас есть:

>>> import Data.List.NonEmpty (NonEmpty (..))
>>> sconcat $ "Hello" :| [" ", "Haskell", "!"]
"Hello Haskell!"
>>> sconcat $ Just [1, 2, 3] :| [Nothing, Just [4, 5, 6]]
Just [1,2,3,4,5,6]
>>> sconcat $ Left 1 :| [Right 2, Left 3, Right 4]
Right 2

stimes :: Integral b => b -> a -> a Источник

Повторить значение n раз.

Определение по умолчанию вызовет исключение, если множитель <= 0. Его можно переопределить полной реализацией. Для моноидов предпочтительно использовать stimesMonoid.

Благодаря тому, что этот метод является частью класса, идемпотентные полугруппы и моноиды могут выполнять его за время \(\mathcal{O}(1)\), выбирая соответственно stimes = stimesIdempotent или stimes = stimesIdempotentMonoid.

Примеры
Развернуть
>>> stimes 4 [1]
[1,1,1,1]
>>> stimes 5 (putStr "hi!")
hi!hi!hi!hi!hi!
>>> stimes 3 (Right ":)")
Right ":)"
Экземпляры
Сведения об экземплярах
Semigroup ByteArray Исходный код

Начиная с: base-4.17.0.0

Сведения об экземпляре

Определено в Data.Array.Byte

Методы

(<>) :: ByteArray -> ByteArray -> ByteArray Исходный код

sconcat :: NonEmpty ByteArray -> ByteArray Исходный код

stimes :: Integral b => b -> ByteArray -> ByteArray Исходный код

Semigroup Void Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.Base

Методы

(<>) :: Void -> Void -> Void Исходный код

sconcat :: NonEmpty Void -> Void Исходный код

stimes :: Integral b => b -> Void -> Void Исходный код

Semigroup All Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(<>) :: All -> All -> All Исходный код

sconcat :: NonEmpty All -> All Исходный код

stimes :: Integral b => b -> All -> All Исходный код

Semigroup Any Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(<>) :: Any -> Any -> Any Исходный код

sconcat :: NonEmpty Any -> Any Исходный код

stimes :: Integral b => b -> Any -> Any Исходный код

Semigroup Event Исходный код

Начиная с: base-4.10.0.0

Сведения об экземпляре

Определено в GHC.Internal.Event.Internal.Types

Методы

(<>) :: Event -> Event -> Event Исходный код

sconcat :: NonEmpty Event -> Event Исходный код

stimes :: Integral b => b -> Event -> Event Исходный код

Semigroup EventLifetime Исходный код

Начиная с: base-4.11.0.0

Сведения об экземпляре

Определено в GHC.Internal.Event.Internal.Types

Методы

(<>) :: EventLifetime -> EventLifetime -> EventLifetime Исходный код

sconcat :: NonEmpty EventLifetime -> EventLifetime Исходный код

stimes :: Integral b => b -> EventLifetime -> EventLifetime Исходный код

Semigroup Lifetime Исходный код

Начиная с: base-4.10.0.0

Сведения об экземпляре

Определено в GHC.Internal.Event.Internal.Types

Методы

(<>) :: Lifetime -> Lifetime -> Lifetime Исходный код

sconcat :: NonEmpty Lifetime -> Lifetime Исходный код

stimes :: Integral b => b -> Lifetime -> Lifetime Исходный код

Semigroup ExceptionContext Исходный код
Сведения об экземпляре

Определено в GHC.Internal.Exception.Context

Методы

(<>) :: ExceptionContext -> ExceptionContext -> ExceptionContext Исходный код

sconcat :: NonEmpty ExceptionContext -> ExceptionContext Исходный код

stimes :: Integral b => b -> ExceptionContext -> ExceptionContext Исходный код

Semigroup Ordering Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.Base

Методы

(<>) :: Ordering -> Ordering -> Ordering Исходный код

sconcat :: NonEmpty Ordering -> Ordering Исходный код

stimes :: Integral b => b -> Ordering -> Ordering Исходный код

Semigroup () Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.Base

Методы

(<>) :: () -> () -> () Исходный код

sconcat :: NonEmpty () -> () Исходный код

stimes :: Integral b => b -> () -> () Исходный код

Semigroup (Comparison a) Исходный код

(<>) при сравнении объединяет результаты с помощью (<>) @Ordering. Без новых типов это эквивалентно liftA2 (liftA2 (<>)).

(<>) :: Comparison a -> Comparison a -> Comparison a
Comparison cmp <> Comparison cmp' = Comparison a a' ->
  cmp a a' <> cmp a a'
Сведения об экземпляре

Определено в Data.Functor.Contravariant

Методы

(<>) :: Comparison a -> Comparison a -> Comparison a Исходный код

sconcat :: NonEmpty (Comparison a) -> Comparison a Исходный код

stimes :: Integral b => b -> Comparison a -> Comparison a Исходный код

Semigroup (Equivalence a) Исходный код

(<>) для эквивалентностей использует логическое И (&&) для результатов. Без новых типов это эквивалентно liftA2 (liftA2 (&&)).

(<>) :: Equivalence a -> Equivalence a -> Equivalence a
Equivalence equiv <> Equivalence equiv' = Equivalence a b ->
  equiv a b && equiv' a b
Сведения об экземпляре

Определено в Data.Functor.Contravariant

Методы

(<>) :: Equivalence a -> Equivalence a -> Equivalence a Исходный код

sconcat :: NonEmpty (Equivalence a) -> Equivalence a Исходный код

stimes :: Integral b => b -> Equivalence a -> Equivalence a Исходный код

Semigroup (Predicate a) Исходный код

(<>) для предикатов использует логическое И (&&) для результатов. Без новых типов это эквивалентно liftA2 (&&).

(<>) :: Predicate a -> Predicate a -> Predicate a
Predicate pred <> Predicate pred' = Predicate a ->
  pred a && pred' a
Сведения об экземпляре

Определено в Data.Functor.Contravariant

Методы

(<>) :: Predicate a -> Predicate a -> Predicate a Исходный код

sconcat :: NonEmpty (Predicate a) -> Predicate a Исходный код

stimes :: Integral b => b -> Predicate a -> Predicate a Исходный код

Semigroup (First a) Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

(<>) :: First a -> First a -> First a Исходный код

sconcat :: NonEmpty (First a) -> First a Исходный код

stimes :: Integral b => b -> First a -> First a Исходный код

Semigroup (Last a) Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

(<>) :: Last a -> Last a -> Last a Исходный код

sconcat :: NonEmpty (Last a) -> Last a Исходный код

stimes :: Integral b => b -> Last a -> Last a Исходный код

Ord a => Semigroup (Max a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

(<>) :: Max a -> Max a -> Max a Источник

sconcat :: NonEmpty (Max a) -> Max a Источник

stimes :: Integral b => b -> Max a -> Max a Источник

Ord a => Semigroup (Min a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

(<>) :: Min a -> Min a -> Min a Источник

sconcat :: NonEmpty (Min a) -> Min a Источник

stimes :: Integral b => b -> Min a -> Min a Источник

Monoid m => Semigroup (WrappedMonoid m) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

(<>) :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m Источник

sconcat :: NonEmpty (WrappedMonoid m) -> WrappedMonoid m Источник

stimes :: Integral b => b -> WrappedMonoid m -> WrappedMonoid m Источник

Semigroup (NonEmpty a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.NonEmpty

Методы

(<>) :: NonEmpty a -> NonEmpty a -> NonEmpty a Источник

sconcat :: NonEmpty (NonEmpty a) -> NonEmpty a Источник

stimes :: Integral b => b -> NonEmpty a -> NonEmpty a Источник

Semigroup a => Semigroup (STM a) Источник

Начиная с: base-4.17.0.0

Подробности экземпляра

Определён в GHC.Internal.Conc.Sync

Методы

(<>) :: STM a -> STM a -> STM a Источник

sconcat :: NonEmpty (STM a) -> STM a Источник

stimes :: Integral b => b -> STM a -> STM a Источник

Bits a => Semigroup (And a) Источник

Начиная с: base-4.16

Подробности экземпляра

Определён в GHC.Internal.Data.Bits

Методы

(<>) :: And a -> And a -> And a Источник

sconcat :: NonEmpty (And a) -> And a Источник

stimes :: Integral b => b -> And a -> And a Источник

FiniteBits a => Semigroup (Iff a) Источник

Это ограничение, пожалуй, слишком сильное. Однако, поскольку у некоторых типов (например, Natural) complement не определено, это единственный безопасный выбор.

Начиная с: base-4.16

Подробности экземпляра

Определён в GHC.Internal.Data.Bits

Методы

(<>) :: Iff a -> Iff a -> Iff a Источник

sconcat :: NonEmpty (Iff a) -> Iff a Источник

stimes :: Integral b => b -> Iff a -> Iff a Источник

Bits a => Semigroup (Ior a) Источник

Начиная с: base-4.16

Подробности экземпляра

Определён в GHC.Internal.Data.Bits

Методы

(<>) :: Ior a -> Ior a -> Ior a Источник

sconcat :: NonEmpty (Ior a) -> Ior a Источник

stimes :: Integral b => b -> Ior a -> Ior a Источник

Bits a => Semigroup (Xor a) Источник

Начиная с: base-4.16

Подробности экземпляра

Определён в GHC.Internal.Data.Bits

Методы

(<>) :: Xor a -> Xor a -> Xor a Источник

sconcat :: NonEmpty (Xor a) -> Xor a Источник

stimes :: Integral b => b -> Xor a -> Xor a Источник

Semigroup a => Semigroup (Identity a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Functor.Identity

Методы

(<>) :: Identity a -> Identity a -> Identity a Источник

sconcat :: NonEmpty (Identity a) -> Identity a Источник

stimes :: Integral b => b -> Identity a -> Identity a Источник

Ord a => Semigroup (Max a) Источник

Начиная с: base-4.11.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Functor.Utils

Методы

(<>) :: Max a -> Max a -> Max a Источник

sconcat :: NonEmpty (Max a) -> Max a Источник

stimes :: Integral b => b -> Max a -> Max a Источник

Ord a => Semigroup (Min a) Источник

Начиная с: base-4.11.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Functor.Utils

Методы

(<>) :: Min a -> Min a -> Min a Источник

sconcat :: NonEmpty (Min a) -> Min a Источник

stimes :: Integral b => b -> Min a -> Min a Источник

Semigroup (First a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Monoid

Методы

(<>) :: First a -> First a -> First a Источник

sconcat :: NonEmpty (First a) -> First a Источник

stimes :: Integral b => b -> First a -> First a Источник

Semigroup (Last a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Monoid

Методы

(<>) :: Last a -> Last a -> Last a Источник

sconcat :: NonEmpty (Last a) -> Last a Источник

stimes :: Integral b => b -> Last a -> Last a Источник

Semigroup a => Semigroup (Down a) Источник

Начиная с: base-4.11.0.0

Сведения об экземпляре

Определено в GHC.Internal.Data.Ord

Методы

(<>) :: Down a -> Down a -> Down a Исходный код

sconcat :: NonEmpty (Down a) -> Down a Исходный код

stimes :: Integral b => b -> Down a -> Down a Исходный код

Semigroup a => Semigroup (Dual a) Исходный код

С версии: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(<>) :: Dual a -> Dual a -> Dual a Исходный код

sconcat :: NonEmpty (Dual a) -> Dual a Исходный код

stimes :: Integral b => b -> Dual a -> Dual a Исходный код

Semigroup (Endo a) Исходный код

С версии: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(<>) :: Endo a -> Endo a -> Endo a Исходный код

sconcat :: NonEmpty (Endo a) -> Endo a Исходный код

stimes :: Integral b => b -> Endo a -> Endo a Исходный код

Num a => Semigroup (Product a) Исходный код

С версии: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(<>) :: Product a -> Product a -> Product a Исходный код

sconcat :: NonEmpty (Product a) -> Product a Исходный код

stimes :: Integral b => b -> Product a -> Product a Исходный код

Num a => Semigroup (Sum a) Исходный код

С версии: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(<>) :: Sum a -> Sum a -> Sum a Исходный код

sconcat :: NonEmpty (Sum a) -> Sum a Исходный код

stimes :: Integral b => b -> Sum a -> Sum a Исходный код

(Generic a, Semigroup (Rep a ())) => Semigroup (Generically a) Исходный код

С версии: base-4.17.0.0

Сведения об экземпляре

Определено в GHC.Internal.Generics

Методы

(<>) :: Generically a -> Generically a -> Generically a Исходный код

sconcat :: NonEmpty (Generically a) -> Generically a Исходный код

stimes :: Integral b => b -> Generically a -> Generically a Исходный код

Semigroup p => Semigroup (Par1 p) Исходный код

С версии: base-4.12.0.0

Сведения об экземпляре

Определено в GHC.Internal.Generics

Методы

(<>) :: Par1 p -> Par1 p -> Par1 p Исходный код

sconcat :: NonEmpty (Par1 p) -> Par1 p Исходный код

stimes :: Integral b => b -> Par1 p -> Par1 p Исходный код

Semigroup a => Semigroup (Q a) Исходный код

С версии: ghc-internal-2.17.0.0

Сведения об экземпляре

Определено в GHC.Internal.TH.Syntax

Методы

(<>) :: Q a -> Q a -> Q a Исходный код

sconcat :: NonEmpty (Q a) -> Q a Исходный код

stimes :: Integral b => b -> Q a -> Q a Исходный код

Semigroup a => Semigroup (IO a) Исходный код

С версии: base-4.10.0.0

Сведения об экземпляре

Определено в GHC.Internal.Base

Методы

(<>) :: IO a -> IO a -> IO a Исходный код

sconcat :: NonEmpty (IO a) -> IO a Исходный код

stimes :: Integral b => b -> IO a -> IO a Исходный код

Semigroup a => Semigroup (Maybe a) Исходный код

С версии: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.Base

Методы

(<>) :: Maybe a -> Maybe a -> Maybe a Исходный код

sconcat :: NonEmpty (Maybe a) -> Maybe a Исходный код

stimes :: Integral b => b -> Maybe a -> Maybe a Исходный код

Semigroup a => Semigroup (Solo a) Исходный код

С версии: base-4.15

Сведения об экземпляре

Определено в GHC.Internal.Base

Методы

(<>) :: Solo a -> Solo a -> Solo a Исходный код

sconcat :: NonEmpty (Solo a) -> Solo a Исходный код

stimes :: Integral b => b -> Solo a -> Solo a Исходный код

Semigroup [a] Исходный код

С версии: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.Base

Методы

(<>) :: [a] -> [a] -> [a] Исходный код

sconcat :: NonEmpty [a] -> [a] Исходный код

stimes :: Integral b => b -> [a] -> [a] Исходный код

Semigroup a => Semigroup (Op a b) Исходный код

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

(<>) :: Op a b -> Op a b -> Op a b
Op f <> Op g = Op a -> f a <> g a
Сведения об экземпляре

Определено в Data.Functor.Contravariant

Методы

(<>) :: Op a b -> Op a b -> Op a b Исходный код

sconcat :: NonEmpty (Op a b) -> Op a b Исходный код

stimes :: Integral b0 => b0 -> Op a b -> Op a b Исходный код

Semigroup (Either a b) Исходный код

С версии: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.Data.Either

Методы

(<>) :: Either a b -> Either a b -> Either a b Исходный код

sconcat :: NonEmpty (Either a b) -> Either a b Исходный код

stimes :: Integral b0 => b0 -> Either a b -> Either a b Исходный код

Semigroup (Proxy s) Исходный код

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Proxy

Методы

(<>) :: Proxy s -> Proxy s -> Proxy s Источник

sconcat :: NonEmpty (Proxy s) -> Proxy s Источник

stimes :: Integral b => b -> Proxy s -> Proxy s Источник

Semigroup (U1 p) Источник

С версии: base-4.12.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

(<>) :: U1 p -> U1 p -> U1 p Источник

sconcat :: NonEmpty (U1 p) -> U1 p Источник

stimes :: Integral b => b -> U1 p -> U1 p Источник

Semigroup (V1 p) Источник

С версии: base-4.12.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

(<>) :: V1 p -> V1 p -> V1 p Источник

sconcat :: NonEmpty (V1 p) -> V1 p Источник

stimes :: Integral b => b -> V1 p -> V1 p Источник

Semigroup a => Semigroup (ST s a) Источник

С версии: base-4.11.0.0

Подробности экземпляра

Определено в GHC.Internal.ST

Методы

(<>) :: ST s a -> ST s a -> ST s a Источник

sconcat :: NonEmpty (ST s a) -> ST s a Источник

stimes :: Integral b => b -> ST s a -> ST s a Источник

(Semigroup a, Semigroup b) => Semigroup (a, b) Источник

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

(<>) :: (a, b) -> (a, b) -> (a, b) Источник

sconcat :: NonEmpty (a, b) -> (a, b) Источник

stimes :: Integral b0 => b0 -> (a, b) -> (a, b) Источник

Semigroup b => Semigroup (a -> b) Источник

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

(<>) :: (a -> b) -> (a -> b) -> a -> b Источник

sconcat :: NonEmpty (a -> b) -> a -> b Источник

stimes :: Integral b0 => b0 -> (a -> b) -> a -> b Источник

Semigroup a => Semigroup (Const a b) Источник

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

(<>) :: Const a b -> Const a b -> Const a b Источник

sconcat :: NonEmpty (Const a b) -> Const a b Источник

stimes :: Integral b0 => b0 -> Const a b -> Const a b Источник

(Applicative f, Semigroup a) => Semigroup (Ap f a) Источник

С версии: base-4.12.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Monoid

Методы

(<>) :: Ap f a -> Ap f a -> Ap f a Источник

sconcat :: NonEmpty (Ap f a) -> Ap f a Источник

stimes :: Integral b => b -> Ap f a -> Ap f a Источник

Alternative f => Semigroup (Alt f a) Источник

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(<>) :: Alt f a -> Alt f a -> Alt f a Источник

sconcat :: NonEmpty (Alt f a) -> Alt f a Источник

stimes :: Integral b => b -> Alt f a -> Alt f a Источник

Semigroup (f p) => Semigroup (Rec1 f p) Источник

С версии: base-4.12.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

(<>) :: Rec1 f p -> Rec1 f p -> Rec1 f p Источник

sconcat :: NonEmpty (Rec1 f p) -> Rec1 f p Источник

stimes :: Integral b => b -> Rec1 f p -> Rec1 f p Источник

(Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c) Источник

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

(<>) :: (a, b, c) -> (a, b, c) -> (a, b, c) Источник

sconcat :: NonEmpty (a, b, c) -> (a, b, c) Источник

stimes :: Integral b0 => b0 -> (a, b, c) -> (a, b, c) Источник

(Semigroup (f a), Semigroup (g a)) => Semigroup (Product f g a) Источник

С версии: base-4.16.0.0

Подробности экземпляра

Определено в Data.Functor.Product

Методы

(<>) :: Product f g a -> Product f g a -> Product f g a Источник

sconcat :: NonEmpty (Product f g a) -> Product f g a Источник

stimes :: Integral b => b -> Product f g a -> Product f g a Источник

(Semigroup (f p), Semigroup (g p)) => Semigroup ((f :*: g) p) Источник

С версии: base-4.12.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

(<>) :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p Источник

sconcat :: NonEmpty ((f :*: g) p) -> (f :*: g) p Источник

stimes :: Integral b => b -> (f :*: g) p -> (f :*: g) p Источник

Semigroup c => Semigroup (K1 i c p) Источник

С версии: base-4.12.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

(<>) :: K1 i c p -> K1 i c p -> K1 i c p Источник

sconcat :: NonEmpty (K1 i c p) -> K1 i c p Источник

stimes :: Integral b => b -> K1 i c p -> K1 i c p Источник

(Semigroup a, Semigroup b, Semigroup c, Semigroup d) => Semigroup (a, b, c, d) Источник

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

(<>) :: (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) Источник

sconcat :: NonEmpty (a, b, c, d) -> (a, b, c, d) Источник

stimes :: Integral b0 => b0 -> (a, b, c, d) -> (a, b, c, d) Источник

Semigroup (f (g a)) => Semigroup (Compose f g a) Источник

С версии: base-4.16.0.0

Подробности экземпляра

Определено в Data.Functor.Compose

Методы

(<>) :: Compose f g a -> Compose f g a -> Compose f g a Источник

sconcat :: NonEmpty (Compose f g a) -> Compose f g a Источник

stimes :: Integral b => b -> Compose f g a -> Compose f g a Источник

Semigroup (f (g p)) => Semigroup ((f :.: g) p) Источник

Начиная с: base-4.12.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

(<>) :: (f :.: g) p -> (f :.: g) p -> (f :.: g) p Источник

sconcat :: NonEmpty ((f :.: g) p) -> (f :.: g) p Источник

stimes :: Integral b => b -> (f :.: g) p -> (f :.: g) p Источник

Semigroup (f p) => Semigroup (M1 i c f p) Источник

Начиная с: base-4.12.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

(<>) :: M1 i c f p -> M1 i c f p -> M1 i c f p Источник

sconcat :: NonEmpty (M1 i c f p) -> M1 i c f p Источник

stimes :: Integral b => b -> M1 i c f p -> M1 i c f p Источник

(Semigroup a, Semigroup b, Semigroup c, Semigroup d, Semigroup e) => Semigroup (a, b, c, d, e) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

(<>) :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) Источник

sconcat :: NonEmpty (a, b, c, d, e) -> (a, b, c, d, e) Источник

stimes :: Integral b0 => b0 -> (a, b, c, d, e) -> (a, b, c, d, e) Источник

stimesMonoid :: (Integral b, Monoid a) => b -> a -> a Источник

Это корректное определение stimes для Monoid.

В отличие от определения stimes по умолчанию, оно определено для 0, поэтому при возможности ему следует отдавать предпочтение.

stimesIdempotent :: Integral b => b -> a -> a Источник

Это корректное определение stimes для идемпотентного Semigroup.

Когда x <> x = x, следует отдавать предпочтение этому определению, поскольку оно работает за \(\mathcal{O}(1)\), а не за \(\mathcal{O}(\log n)\).

stimesIdempotentMonoid :: (Integral b, Monoid a) => b -> a -> a Источник

Это корректное определение stimes для идемпотентного Monoid.

Когда x <> x = x, следует отдавать предпочтение этому определению, поскольку оно работает за \(\mathcal{O}(1)\), а не за \(\mathcal{O}(\log n)\)

mtimesDefault :: (Integral b, Monoid a) => b -> a -> a Источник

Повторить значение n раз.

mtimesDefault n a = a <> a <> ... <> a  -- using <> (n-1) times

Во многих случаях stimes 0 a для Monoid вернёт mempty. Однако бывают ситуации, когда этого сделать не удаётся. В частности, довольно часто встречается следующая ситуация:

data T a = ...

class Constraint1 a
class Constraint1 a => Constraint2 a
instance Constraint1 a => Semigroup (T a)
instance Constraint2 a => Monoid (T a)

Поскольку Constraint1 недостаточно для реализации mempty, stimes для T a не может этого сделать.

При работе с таким типом или полиморфно с экземплярами Semigroup следует использовать mtimesDefault, если множитель может быть равен нулю. При ненулевом множителе оно реализуется с помощью stimes, а при нулевом — с помощью mempty.

Примеры
Развернуть
>>> mtimesDefault 0 "bark"
""
>>> mtimesDefault 3 "meow"
"meowmeowmeow"

Полугруппы

newtype Min a Источник

Полугруппа Min Monoid и Semigroup всегда выбирают наименьший элемент согласно экземпляру Ord и min содержащегося типа.

Примеры
Развернуть
>>> Min 42 <> Min 3
Min {getMin = 3}
>>> sconcat $ Min 1 :| [ Min n | n <- [2 .. 100]]
Min {getMin = 1}

Конструкторы

Min

Поля

  • getMin :: a
Экземпляры
Подробности экземпляров
Foldable1 Min Исходный код

Начиная с: base-4.18.0.0

Подробности экземпляра

Определён в Data.Foldable1

Методы

fold1 :: Semigroup m => Min m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Min a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Min a -> m Исходный код

toNonEmpty :: Min a -> NonEmpty a Исходный код

maximum :: Ord a => Min a -> a Исходный код

minimum :: Ord a => Min a -> a Исходный код

head :: Min a -> a Исходный код

last :: Min a -> a Исходный код

foldrMap1 :: (a -> b) -> (a -> b -> b) -> Min a -> b Исходный код

foldlMap1' :: (a -> b) -> (b -> a -> b) -> Min a -> b Исходный код

foldlMap1 :: (a -> b) -> (b -> a -> b) -> Min a -> b Исходный код

foldrMap1' :: (a -> b) -> (a -> b -> b) -> Min a -> b Исходный код

Applicative Min Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

pure :: a -> Min a Исходный код

(<*>) :: Min (a -> b) -> Min a -> Min b Исходный код

liftA2 :: (a -> b -> c) -> Min a -> Min b -> Min c Исходный код

(*>) :: Min a -> Min b -> Min b Исходный код

(<*) :: Min a -> Min b -> Min a Исходный код

Functor Min Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

fmap :: (a -> b) -> Min a -> Min b Исходный код

(<$) :: a -> Min b -> Min a Исходный код

Monad Min Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

(>>=) :: Min a -> (a -> Min b) -> Min b Исходный код

(>>) :: Min a -> Min b -> Min b Исходный код

return :: a -> Min a Исходный код

MonadFix Min Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

mfix :: (a -> Min a) -> Min a Исходный код

Foldable Min Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

fold :: Monoid m => Min m -> m Исходный код

foldMap :: Monoid m => (a -> m) -> Min a -> m Исходный код

foldMap' :: Monoid m => (a -> m) -> Min a -> m Исходный код

foldr :: (a -> b -> b) -> b -> Min a -> b Исходный код

foldr' :: (a -> b -> b) -> b -> Min a -> b Исходный код

foldl :: (b -> a -> b) -> b -> Min a -> b Исходный код

foldl' :: (b -> a -> b) -> b -> Min a -> b Исходный код

foldr1 :: (a -> a -> a) -> Min a -> a Исходный код

foldl1 :: (a -> a -> a) -> Min a -> a Исходный код

toList :: Min a -> [a] Исходный код

null :: Min a -> Bool Исходный код

length :: Min a -> Int Исходный код

elem :: Eq a => a -> Min a -> Bool Исходный код

maximum :: Ord a => Min a -> a Исходный код

minimum :: Ord a => Min a -> a Исходный код

sum :: Num a => Min a -> a Исходный код

product :: Num a => Min a -> a Исходный код

Traversable Min Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

traverse :: Applicative f => (a -> f b) -> Min a -> f (Min b) Исходный код

sequenceA :: Applicative f => Min (f a) -> f (Min a) Исходный код

mapM :: Monad m => (a -> m b) -> Min a -> m (Min b) Исходный код

sequence :: Monad m => Min (m a) -> m (Min a) Исходный код

Generic1 Min Исходный код
Подробности экземпляра

Определён в Data.Semigroup

Связанные типы

type Rep1 Min

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

type Rep1 Min = D1 ('MetaData "Min" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "Min" 'PrefixI 'True) (S1 ('MetaSel ('Just "getMin") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))

Методы

from1 :: Min a -> Rep1 Min a Исходный код

to1 :: Rep1 Min a -> Min a Исходный код

(Ord a, Bounded a) => Monoid (Min a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

mempty :: Min a Исходный код

mappend :: Min a -> Min a -> Min a Исходный код

mconcat :: [Min a] -> Min a Исходный код

Ord a => Semigroup (Min a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

(<>) :: Min a -> Min a -> Min a Исходный код

sconcat :: NonEmpty (Min a) -> Min a Исходный код

stimes :: Integral b => b -> Min a -> Min a Исходный код

Eq a => Eq (Min a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

(==) :: Min a -> Min a -> Bool Исходный код

(/=) :: Min a -> Min a -> Bool Исходный код

Ord a => Ord (Min a) Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

compare :: Min a -> Min a -> Ordering Исходный код

(<) :: Min a -> Min a -> Bool Исходный код

(<=) :: Min a -> Min a -> Bool Исходный код

(>) :: Min a -> Min a -> Bool Исходный код

(>=) :: Min a -> Min a -> Bool Исходный код

max :: Min a -> Min a -> Min a Исходный код

min :: Min a -> Min a -> Min a Исходный код

Data a => Data (Min a) Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Min a -> c (Min a) Исходный код

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Min a) Исходный код

toConstr :: Min a -> Constr Исходный код

dataTypeOf :: Min a -> DataType Исходный код

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Min a)) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Min a)) Исходный код

gmapT :: (forall b. Data b => b -> b) -> Min a -> Min a Исходный код

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r Исходный код

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r Исходный код

gmapQ :: (forall d. Data d => d -> u) -> Min a -> [u] Исходный код

gmapQi :: Int -> (forall d. Data d => d -> u) -> Min a -> u Исходный код

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Min a -> m (Min a) Исходный код

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Min a -> m (Min a) Исходный код

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Min a -> m (Min a) Исходный код

Bounded a => Bounded (Min a) Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

minBound :: Min a Исходный код

maxBound :: Min a Исходный код

Enum a => Enum (Min a) Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

succ :: Min a -> Min a Исходный код

pred :: Min a -> Min a Исходный код

toEnum :: Int -> Min a Исходный код

fromEnum :: Min a -> Int Исходный код

enumFrom :: Min a -> [Min a] Исходный код

enumFromThen :: Min a -> Min a -> [Min a] Исходный код

enumFromTo :: Min a -> Min a -> [Min a] Исходный код

enumFromThenTo :: Min a -> Min a -> Min a -> [Min a] Исходный код

Generic (Min a) Исходный код
Сведения об экземпляре

Определено в Data.Semigroup

Связанные типы

type Rep (Min a)

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

type Rep (Min a) = D1 ('MetaData "Min" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "Min" 'PrefixI 'True) (S1 ('MetaSel ('Just "getMin") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

Методы

from :: Min a -> Rep (Min a) x Исходный код

to :: Rep (Min a) x -> Min a Исходный код

Num a => Num (Min a) Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

(+) :: Min a -> Min a -> Min a Исходный код

(-) :: Min a -> Min a -> Min a Исходный код

(*) :: Min a -> Min a -> Min a Исходный код

negate :: Min a -> Min a Исходный код

abs :: Min a -> Min a Исходный код

signum :: Min a -> Min a Исходный код

fromInteger :: Integer -> Min a Исходный код

Read a => Read (Min a) Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

readsPrec :: Int -> ReadS (Min a) Исходный код

readList :: ReadS [Min a] Исходный код

readPrec :: ReadPrec (Min a) Исходный код

readListPrec :: ReadPrec [Min a] Исходный код

Show a => Show (Min a) Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

showsPrec :: Int -> Min a -> ShowS Исходный код

show :: Min a -> String Исходный код

showList :: [Min a] -> ShowS Исходный код

type Rep1 Min Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

type Rep1 Min = D1 ('MetaData "Min" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "Min" 'PrefixI 'True) (S1 ('MetaSel ('Just "getMin") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
type Rep (Min a) Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

type Rep (Min a) = D1 ('MetaData "Min" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "Min" 'PrefixI 'True) (S1 ('MetaSel ('Just "getMin") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

newtype Max a Исходный код

Типы Max Monoid и Semigroup всегда выбирают больший элемент согласно экземпляру Ord и max содержащегося типа.

Примеры
Развернуть
>>> Max 42 <> Max 3
Max {getMax = 42}
>>> sconcat $ Max 1 :| [ Max n | n <- [2 .. 100]]
Max {getMax = 100}

Конструкторы

Max

Поля

  • getMax :: a
Экземпляры
Подробности экземпляров
Foldable1 Max Источник

Начиная с: base-4.18.0.0

Подробности экземпляра

Определено в Data.Foldable1

Методы

fold1 :: Semigroup m => Max m -> m Источник

foldMap1 :: Semigroup m => (a -> m) -> Max a -> m Источник

foldMap1' :: Semigroup m => (a -> m) -> Max a -> m Источник

toNonEmpty :: Max a -> NonEmpty a Источник

maximum :: Ord a => Max a -> a Источник

minimum :: Ord a => Max a -> a Источник

head :: Max a -> a Источник

last :: Max a -> a Источник

foldrMap1 :: (a -> b) -> (a -> b -> b) -> Max a -> b Источник

foldlMap1' :: (a -> b) -> (b -> a -> b) -> Max a -> b Источник

foldlMap1 :: (a -> b) -> (b -> a -> b) -> Max a -> b Источник

foldrMap1' :: (a -> b) -> (a -> b -> b) -> Max a -> b Источник

Applicative Max Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

pure :: a -> Max a Источник

(<*>) :: Max (a -> b) -> Max a -> Max b Источник

liftA2 :: (a -> b -> c) -> Max a -> Max b -> Max c Источник

(*>) :: Max a -> Max b -> Max b Источник

(<*) :: Max a -> Max b -> Max a Источник

Functor Max Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

fmap :: (a -> b) -> Max a -> Max b Источник

(<$) :: a -> Max b -> Max a Источник

Monad Max Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

(>>=) :: Max a -> (a -> Max b) -> Max b Источник

(>>) :: Max a -> Max b -> Max b Источник

return :: a -> Max a Источник

MonadFix Max Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

mfix :: (a -> Max a) -> Max a Источник

Foldable Max Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

fold :: Monoid m => Max m -> m Источник

foldMap :: Monoid m => (a -> m) -> Max a -> m Источник

foldMap' :: Monoid m => (a -> m) -> Max a -> m Источник

foldr :: (a -> b -> b) -> b -> Max a -> b Источник

foldr' :: (a -> b -> b) -> b -> Max a -> b Источник

foldl :: (b -> a -> b) -> b -> Max a -> b Источник

foldl' :: (b -> a -> b) -> b -> Max a -> b Источник

foldr1 :: (a -> a -> a) -> Max a -> a Источник

foldl1 :: (a -> a -> a) -> Max a -> a Источник

toList :: Max a -> [a] Источник

null :: Max a -> Bool Источник

length :: Max a -> Int Источник

elem :: Eq a => a -> Max a -> Bool Источник

maximum :: Ord a => Max a -> a Источник

minimum :: Ord a => Max a -> a Источник

sum :: Num a => Max a -> a Источник

product :: Num a => Max a -> a Источник

Traversable Max Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

traverse :: Applicative f => (a -> f b) -> Max a -> f (Max b) Источник

sequenceA :: Applicative f => Max (f a) -> f (Max a) Источник

mapM :: Monad m => (a -> m b) -> Max a -> m (Max b) Источник

sequence :: Monad m => Max (m a) -> m (Max a) Источник

Generic1 Max Источник
Подробности экземпляра

Определено в Data.Semigroup

Ассоциированные типы

type Rep1 Max

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

type Rep1 Max = D1 ('MetaData "Max" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "Max" 'PrefixI 'True) (S1 ('MetaSel ('Just "getMax") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))

Методы

from1 :: Max a -> Rep1 Max a Источник

to1 :: Rep1 Max a -> Max a Источник

(Ord a, Bounded a) => Monoid (Max a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

mempty :: Max a Источник

mappend :: Max a -> Max a -> Max a Источник

mconcat :: [Max a] -> Max a Источник

Ord a => Semigroup (Max a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

(<>) :: Max a -> Max a -> Max a Источник

sconcat :: NonEmpty (Max a) -> Max a Источник

stimes :: Integral b => b -> Max a -> Max a Источник

Eq a => Eq (Max a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

(==) :: Max a -> Max a -> Bool Источник

(/=) :: Max a -> Max a -> Bool Источник

Ord a => Ord (Max a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

compare :: Max a -> Max a -> Ordering Исходный код

(<) :: Max a -> Max a -> Bool Исходный код

(<=) :: Max a -> Max a -> Bool Исходный код

(>) :: Max a -> Max a -> Bool Исходный код

(>=) :: Max a -> Max a -> Bool Исходный код

max :: Max a -> Max a -> Max a Исходный код

min :: Max a -> Max a -> Max a Исходный код

Data a => Data (Max a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Max a -> c (Max a) Исходный код

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Max a) Исходный код

toConstr :: Max a -> Constr Исходный код

dataTypeOf :: Max a -> DataType Исходный код

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Max a)) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Max a)) Исходный код

gmapT :: (forall b. Data b => b -> b) -> Max a -> Max a Исходный код

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r Исходный код

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r Исходный код

gmapQ :: (forall d. Data d => d -> u) -> Max a -> [u] Исходный код

gmapQi :: Int -> (forall d. Data d => d -> u) -> Max a -> u Исходный код

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Max a -> m (Max a) Исходный код

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Max a -> m (Max a) Исходный код

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Max a -> m (Max a) Исходный код

Bounded a => Bounded (Max a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

minBound :: Max a Исходный код

maxBound :: Max a Исходный код

Enum a => Enum (Max a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

succ :: Max a -> Max a Исходный код

pred :: Max a -> Max a Исходный код

toEnum :: Int -> Max a Исходный код

fromEnum :: Max a -> Int Исходный код

enumFrom :: Max a -> [Max a] Исходный код

enumFromThen :: Max a -> Max a -> [Max a] Исходный код

enumFromTo :: Max a -> Max a -> [Max a] Исходный код

enumFromThenTo :: Max a -> Max a -> Max a -> [Max a] Исходный код

Generic (Max a) Исходный код
Подробности экземпляра

Определено в Data.Semigroup

Ассоциированные типы

type Rep (Max a)

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

type Rep (Max a) = D1 ('MetaData "Max" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "Max" 'PrefixI 'True) (S1 ('MetaSel ('Just "getMax") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

Методы

from :: Max a -> Rep (Max a) x Исходный код

to :: Rep (Max a) x -> Max a Исходный код

Num a => Num (Max a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

(+) :: Max a -> Max a -> Max a Исходный код

(-) :: Max a -> Max a -> Max a Исходный код

(*) :: Max a -> Max a -> Max a Исходный код

negate :: Max a -> Max a Исходный код

abs :: Max a -> Max a Исходный код

signum :: Max a -> Max a Исходный код

fromInteger :: Integer -> Max a Исходный код

Read a => Read (Max a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

readsPrec :: Int -> ReadS (Max a) Исходный код

readList :: ReadS [Max a] Исходный код

readPrec :: ReadPrec (Max a) Исходный код

readListPrec :: ReadPrec [Max a] Исходный код

Show a => Show (Max a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

showsPrec :: Int -> Max a -> ShowS Исходный код

show :: Max a -> String Исходный код

showList :: [Max a] -> ShowS Исходный код

type Rep1 Max Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

type Rep1 Max = D1 ('MetaData "Max" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "Max" 'PrefixI 'True) (S1 ('MetaSel ('Just "getMax") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
type Rep (Max a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

type Rep (Max a) = D1 ('MetaData "Max" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "Max" 'PrefixI 'True) (S1 ('MetaSel ('Just "getMax") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

newtype First a Исходный код

Обратите внимание: Data.Semigroup.First отличается от Data.Monoid.First. Первый просто возвращает первое значение, поэтому Data.Semigroup.First Nothing <> x = Data.Semigroup.First Nothing. Второй возвращает первое значение, отличное от Nothing, следовательно Data.Monoid.First Nothing <> x = x.

Примеры
Развернуть
>>> First 0 <> First 10
First {getFirst = 0}
>>> sconcat $ First 1 :| [ First n | n <- [2 ..] ]
First {getFirst = 1}

Конструкторы

First

Поля

  • getFirst :: a
Экземпляры
Подробности экземпляров
Foldable1 First Исходный код

Начиная с: base-4.18.0.0

Подробности экземпляра

Определено в Data.Foldable1

Методы

fold1 :: Semigroup m => First m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> First a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> First a -> m Исходный код

toNonEmpty :: First a -> NonEmpty a Исходный код

maximum :: Ord a => First a -> a Исходный код

minimum :: Ord a => First a -> a Исходный код

head :: First a -> a Исходный код

last :: First a -> a Исходный код

foldrMap1 :: (a -> b) -> (a -> b -> b) -> First a -> b Исходный код

foldlMap1' :: (a -> b) -> (b -> a -> b) -> First a -> b Исходный код

foldlMap1 :: (a -> b) -> (b -> a -> b) -> First a -> b Исходный код

foldrMap1' :: (a -> b) -> (a -> b -> b) -> First a -> b Исходный код

Applicative First Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

pure :: a -> First a Исходный код

(<*>) :: First (a -> b) -> First a -> First b Исходный код

liftA2 :: (a -> b -> c) -> First a -> First b -> First c Исходный код

(*>) :: First a -> First b -> First b Исходный код

(<*) :: First a -> First b -> First a Исходный код

Functor First Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

fmap :: (a -> b) -> First a -> First b Исходный код

(<$) :: a -> First b -> First a Исходный код

Monad First Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

(>>=) :: First a -> (a -> First b) -> First b Исходный код

(>>) :: First a -> First b -> First b Исходный код

return :: a -> First a Исходный код

MonadFix First Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

mfix :: (a -> First a) -> First a Исходный код

Foldable First Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

fold :: Monoid m => First m -> m Исходный код

foldMap :: Monoid m => (a -> m) -> First a -> m Исходный код

foldMap' :: Monoid m => (a -> m) -> First a -> m Исходный код

foldr :: (a -> b -> b) -> b -> First a -> b Исходный код

foldr' :: (a -> b -> b) -> b -> First a -> b Исходный код

foldl :: (b -> a -> b) -> b -> First a -> b Исходный код

foldl' :: (b -> a -> b) -> b -> First a -> b Исходный код

foldr1 :: (a -> a -> a) -> First a -> a Исходный код

foldl1 :: (a -> a -> a) -> First a -> a Исходный код

toList :: First a -> [a] Исходный код

null :: First a -> Bool Исходный код

length :: First a -> Int Исходный код

elem :: Eq a => a -> First a -> Bool Исходный код

maximum :: Ord a => First a -> a Исходный код

minimum :: Ord a => First a -> a Исходный код

sum :: Num a => First a -> a Исходный код

product :: Num a => First a -> a Исходный код

Traversable First Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

traverse :: Applicative f => (a -> f b) -> First a -> f (First b) Исходный код

sequenceA :: Applicative f => First (f a) -> f (First a) Исходный код

mapM :: Monad m => (a -> m b) -> First a -> m (First b) Исходный код

sequence :: Monad m => First (m a) -> m (First a) Исходный код

Generic1 First Исходный код
Подробности экземпляра

Определено в Data.Semigroup

Связанные типы

type Rep1 First

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

type Rep1 First = D1 ('MetaData "First" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "First" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFirst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))

Методы

from1 :: First a -> Rep1 First a Исходный код

to1 :: Rep1 First a -> First a Исходный код

Semigroup (First a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

(<>) :: First a -> First a -> First a Исходный код

sconcat :: NonEmpty (First a) -> First a Исходный код

stimes :: Integral b => b -> First a -> First a Исходный код

Eq a => Eq (First a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

(==) :: First a -> First a -> Bool Исходный код

(/=) :: First a -> First a -> Bool Исходный код

Ord a => Ord (First a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

compare :: First a -> First a -> Ordering Исходный код

(<) :: First a -> First a -> Bool Исходный код

(<=) :: First a -> First a -> Bool Исходный код

(>) :: First a -> First a -> Bool Исходный код

(>=) :: First a -> First a -> Bool Исходный код

max :: First a -> First a -> First a Исходный код

min :: First a -> First a -> First a Исходный код

Data a => Data (First a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> First a -> c (First a) Источник

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (First a) Источник

toConstr :: First a -> Constr Источник

dataTypeOf :: First a -> DataType Источник

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (First a)) Источник

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (First a)) Источник

gmapT :: (forall b. Data b => b -> b) -> First a -> First a Источник

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r Источник

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r Источник

gmapQ :: (forall d. Data d => d -> u) -> First a -> [u] Источник

gmapQi :: Int -> (forall d. Data d => d -> u) -> First a -> u Источник

gmapM :: Monad m => (forall d. Data d => d -> m d) -> First a -> m (First a) Источник

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> First a -> m (First a) Источник

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> First a -> m (First a) Источник

Bounded a => Bounded (First a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

minBound :: First a Источник

maxBound :: First a Источник

Enum a => Enum (First a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

succ :: First a -> First a Источник

pred :: First a -> First a Источник

toEnum :: Int -> First a Источник

fromEnum :: First a -> Int Источник

enumFrom :: First a -> [First a] Источник

enumFromThen :: First a -> First a -> [First a] Источник

enumFromTo :: First a -> First a -> [First a] Источник

enumFromThenTo :: First a -> First a -> First a -> [First a] Источник

Generic (First a) Источник
Подробности экземпляра

Определено в Data.Semigroup

Связанные типы

type Rep (First a)

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

type Rep (First a) = D1 ('MetaData "First" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "First" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFirst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

Методы

from :: First a -> Rep (First a) x Источник

to :: Rep (First a) x -> First a Источник

Read a => Read (First a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

readsPrec :: Int -> ReadS (First a) Источник

readList :: ReadS [First a] Источник

readPrec :: ReadPrec (First a) Источник

readListPrec :: ReadPrec [First a] Источник

Show a => Show (First a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

showsPrec :: Int -> First a -> ShowS Источник

show :: First a -> String Источник

showList :: [First a] -> ShowS Источник

type Rep1 First Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

type Rep1 First = D1 ('MetaData "First" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "First" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFirst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
type Rep (First a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

type Rep (First a) = D1 ('MetaData "First" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "First" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFirst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

newtype Last a Источник

Обратите внимание: Data.Semigroup.Last отличается от Data.Monoid.Last. Первый просто возвращает последнее значение, поэтому x <> Data.Semigroup.Last Nothing = Data.Semigroup.Last Nothing. Второй возвращает последнее значение, не равное Nothing, следовательно, x <> Data.Monoid.Last Nothing = x.

Примеры
Развернуть
>>> Last 0 <> Last 10
Last {getLast = 10}
>>> sconcat $ Last 1 :| [ Last n | n <- [2..]]
* Hangs forever *

Конструкторы

Last

Поля

  • getLast :: a
Экземпляры
Сведения об экземплярах
Foldable1 Last Источник

Начиная с: base-4.18.0.0

Сведения об экземпляре

Определено в Data.Foldable1

Методы

fold1 :: Semigroup m => Last m -> m Источник

foldMap1 :: Semigroup m => (a -> m) -> Last a -> m Источник

foldMap1' :: Semigroup m => (a -> m) -> Last a -> m Источник

toNonEmpty :: Last a -> NonEmpty a Источник

maximum :: Ord a => Last a -> a Источник

minimum :: Ord a => Last a -> a Источник

head :: Last a -> a Источник

last :: Last a -> a Источник

foldrMap1 :: (a -> b) -> (a -> b -> b) -> Last a -> b Источник

foldlMap1' :: (a -> b) -> (b -> a -> b) -> Last a -> b Источник

foldlMap1 :: (a -> b) -> (b -> a -> b) -> Last a -> b Источник

foldrMap1' :: (a -> b) -> (a -> b -> b) -> Last a -> b Источник

Applicative Last Источник

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

pure :: a -> Last a Источник

(<*>) :: Last (a -> b) -> Last a -> Last b Источник

liftA2 :: (a -> b -> c) -> Last a -> Last b -> Last c Источник

(*>) :: Last a -> Last b -> Last b Источник

(<*) :: Last a -> Last b -> Last a Источник

Functor Last Источник

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

fmap :: (a -> b) -> Last a -> Last b Источник

(<$) :: a -> Last b -> Last a Источник

Monad Last Источник

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

(>>=) :: Last a -> (a -> Last b) -> Last b Источник

(>>) :: Last a -> Last b -> Last b Источник

return :: a -> Last a Источник

MonadFix Last Источник

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

mfix :: (a -> Last a) -> Last a Источник

Foldable Last Источник

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

fold :: Monoid m => Last m -> m Источник

foldMap :: Monoid m => (a -> m) -> Last a -> m Источник

foldMap' :: Monoid m => (a -> m) -> Last a -> m Источник

foldr :: (a -> b -> b) -> b -> Last a -> b Источник

foldr' :: (a -> b -> b) -> b -> Last a -> b Источник

foldl :: (b -> a -> b) -> b -> Last a -> b Источник

foldl' :: (b -> a -> b) -> b -> Last a -> b Источник

foldr1 :: (a -> a -> a) -> Last a -> a Источник

foldl1 :: (a -> a -> a) -> Last a -> a Источник

toList :: Last a -> [a] Источник

null :: Last a -> Bool Источник

length :: Last a -> Int Источник

elem :: Eq a => a -> Last a -> Bool Источник

maximum :: Ord a => Last a -> a Источник

minimum :: Ord a => Last a -> a Источник

sum :: Num a => Last a -> a Источник

product :: Num a => Last a -> a Источник

Traversable Last Источник

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

traverse :: Applicative f => (a -> f b) -> Last a -> f (Last b) Источник

sequenceA :: Applicative f => Last (f a) -> f (Last a) Источник

mapM :: Monad m => (a -> m b) -> Last a -> m (Last b) Источник

sequence :: Monad m => Last (m a) -> m (Last a) Источник

Generic1 Last Источник
Сведения об экземпляре

Определено в Data.Semigroup

Ассоциированные типы

type Rep1 Last

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

type Rep1 Last = D1 ('MetaData "Last" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "Last" 'PrefixI 'True) (S1 ('MetaSel ('Just "getLast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))

Методы

from1 :: Last a -> Rep1 Last a Источник

to1 :: Rep1 Last a -> Last a Источник

Semigroup (Last a) Источник

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

(<>) :: Last a -> Last a -> Last a Источник

sconcat :: NonEmpty (Last a) -> Last a Источник

stimes :: Integral b => b -> Last a -> Last a Источник

Eq a => Eq (Last a) Источник

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

(==) :: Last a -> Last a -> Bool Источник

(/=) :: Last a -> Last a -> Bool Источник

Ord a => Ord (Last a) Источник

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в Data.Semigroup

Методы

compare :: Last a -> Last a -> Ordering Источник

(<) :: Last a -> Last a -> Bool Источник

(<=) :: Last a -> Last a -> Bool Источник

(>) :: Last a -> Last a -> Bool Источник

(>=) :: Last a -> Last a -> Bool Источник

max :: Last a -> Last a -> Last a Источник

min :: Last a -> Last a -> Last a Источник

Data a => Data (Last a) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Last a -> c (Last a) Исходный код

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Last a) Исходный код

toConstr :: Last a -> Constr Исходный код

dataTypeOf :: Last a -> DataType Исходный код

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Last a)) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Last a)) Исходный код

gmapT :: (forall b. Data b => b -> b) -> Last a -> Last a Исходный код

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r Исходный код

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r Исходный код

gmapQ :: (forall d. Data d => d -> u) -> Last a -> [u] Исходный код

gmapQi :: Int -> (forall d. Data d => d -> u) -> Last a -> u Исходный код

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) Исходный код

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) Исходный код

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) Исходный код

Bounded a => Bounded (Last a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

minBound :: Last a Исходный код

maxBound :: Last a Исходный код

Enum a => Enum (Last a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

succ :: Last a -> Last a Исходный код

pred :: Last a -> Last a Исходный код

toEnum :: Int -> Last a Исходный код

fromEnum :: Last a -> Int Исходный код

enumFrom :: Last a -> [Last a] Исходный код

enumFromThen :: Last a -> Last a -> [Last a] Исходный код

enumFromTo :: Last a -> Last a -> [Last a] Исходный код

enumFromThenTo :: Last a -> Last a -> Last a -> [Last a] Исходный код

Generic (Last a) Исходный код
Подробности экземпляра

Определено в Data.Semigroup

Связанные типы

type Rep (Last a)

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

type Rep (Last a) = D1 ('MetaData "Last" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "Last" 'PrefixI 'True) (S1 ('MetaSel ('Just "getLast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

Методы

from :: Last a -> Rep (Last a) x Исходный код

to :: Rep (Last a) x -> Last a Исходный код

Read a => Read (Last a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

readsPrec :: Int -> ReadS (Last a) Исходный код

readList :: ReadS [Last a] Исходный код

readPrec :: ReadPrec (Last a) Исходный код

readListPrec :: ReadPrec [Last a] Исходный код

Show a => Show (Last a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

showsPrec :: Int -> Last a -> ShowS Исходный код

show :: Last a -> String Исходный код

showList :: [Last a] -> ShowS Исходный код

type Rep1 Last Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

type Rep1 Last = D1 ('MetaData "Last" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "Last" 'PrefixI 'True) (S1 ('MetaSel ('Just "getLast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
type Rep (Last a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

type Rep (Last a) = D1 ('MetaData "Last" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "Last" 'PrefixI 'True) (S1 ('MetaSel ('Just "getLast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

newtype WrappedMonoid m Исходный код

Предоставляет Semigroup для произвольного моноида.

ПРИМЕЧАНИЕ: Это больше не требуется, поскольку Semigroup стал суперклассом Monoid в base-4.11; в будущем этот newtype будет объявлен устаревшим.

Конструкторы

WrapMonoid

Поля

  • unwrapMonoid :: m
Экземпляры
Подробности экземпляров
Generic1 WrappedMonoid Исходный код
Подробности экземпляра

Определён в Data.Semigroup

Ассоциированные типы

type Rep1 WrappedMonoid

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

type Rep1 WrappedMonoid = D1 ('MetaData "WrappedMonoid" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "WrapMonoid" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonoid") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))

Методы

from1 :: WrappedMonoid a -> Rep1 WrappedMonoid a Исходный код

to1 :: Rep1 WrappedMonoid a -> WrappedMonoid a Исходный код

Monoid m => Monoid (WrappedMonoid m) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

mempty :: WrappedMonoid m Исходный код

mappend :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m Исходный код

mconcat :: [WrappedMonoid m] -> WrappedMonoid m Исходный код

Monoid m => Semigroup (WrappedMonoid m) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

(<>) :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m Исходный код

sconcat :: NonEmpty (WrappedMonoid m) -> WrappedMonoid m Исходный код

stimes :: Integral b => b -> WrappedMonoid m -> WrappedMonoid m Исходный код

Eq m => Eq (WrappedMonoid m) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

(==) :: WrappedMonoid m -> WrappedMonoid m -> Bool Исходный код

(/=) :: WrappedMonoid m -> WrappedMonoid m -> Bool Исходный код

Ord m => Ord (WrappedMonoid m) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

compare :: WrappedMonoid m -> WrappedMonoid m -> Ordering Исходный код

(<) :: WrappedMonoid m -> WrappedMonoid m -> Bool Исходный код

(<=) :: WrappedMonoid m -> WrappedMonoid m -> Bool Исходный код

(>) :: WrappedMonoid m -> WrappedMonoid m -> Bool Исходный код

(>=) :: WrappedMonoid m -> WrappedMonoid m -> Bool Исходный код

max :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m Исходный код

min :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m Исходный код

Data m => Data (WrappedMonoid m) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WrappedMonoid m -> c (WrappedMonoid m) Исходный код

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (WrappedMonoid m) Исходный код

toConstr :: WrappedMonoid m -> Constr Исходный код

dataTypeOf :: WrappedMonoid m -> DataType Исходный код

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (WrappedMonoid m)) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (WrappedMonoid m)) Исходный код

gmapT :: (forall b. Data b => b -> b) -> WrappedMonoid m -> WrappedMonoid m Исходный код

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonoid m -> r Исходный код

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonoid m -> r Исходный код

gmapQ :: (forall d. Data d => d -> u) -> WrappedMonoid m -> [u] Исходный код

gmapQi :: Int -> (forall d. Data d => d -> u) -> WrappedMonoid m -> u Исходный код

gmapM :: Monad m0 => (forall d. Data d => d -> m0 d) -> WrappedMonoid m -> m0 (WrappedMonoid m) Исходный код

gmapMp :: MonadPlus m0 => (forall d. Data d => d -> m0 d) -> WrappedMonoid m -> m0 (WrappedMonoid m) Исходный код

gmapMo :: MonadPlus m0 => (forall d. Data d => d -> m0 d) -> WrappedMonoid m -> m0 (WrappedMonoid m) Исходный код

Bounded m => Bounded (WrappedMonoid m) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

minBound :: WrappedMonoid m Исходный код

maxBound :: WrappedMonoid m Исходный код

Enum a => Enum (WrappedMonoid a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

succ :: WrappedMonoid a -> WrappedMonoid a Исходный код

pred :: WrappedMonoid a -> WrappedMonoid a Исходный код

toEnum :: Int -> WrappedMonoid a Исходный код

fromEnum :: WrappedMonoid a -> Int Исходный код

enumFrom :: WrappedMonoid a -> [WrappedMonoid a] Исходный код

enumFromThen :: WrappedMonoid a -> WrappedMonoid a -> [WrappedMonoid a] Исходный код

enumFromTo :: WrappedMonoid a -> WrappedMonoid a -> [WrappedMonoid a] Исходный код

enumFromThenTo :: WrappedMonoid a -> WrappedMonoid a -> WrappedMonoid a -> [WrappedMonoid a] Исходный код

Generic (WrappedMonoid m) Исходный код
Подробности экземпляра

Определён в Data.Semigroup

Ассоциированные типы

type Rep (WrappedMonoid m)

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

type Rep (WrappedMonoid m) = D1 ('MetaData "WrappedMonoid" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "WrapMonoid" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonoid") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m)))

Методы

from :: WrappedMonoid m -> Rep (WrappedMonoid m) x Исходный код

to :: Rep (WrappedMonoid m) x -> WrappedMonoid m Исходный код

Read m => Read (WrappedMonoid m) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

readsPrec :: Int -> ReadS (WrappedMonoid m) Исходный код

readList :: ReadS [WrappedMonoid m] Исходный код

readPrec :: ReadPrec (WrappedMonoid m) Исходный код

readListPrec :: ReadPrec [WrappedMonoid m] Исходный код

Show m => Show (WrappedMonoid m) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

showsPrec :: Int -> WrappedMonoid m -> ShowS Источник

show :: WrappedMonoid m -> String Источник

showList :: [WrappedMonoid m] -> ShowS Источник

type Rep1 WrappedMonoid Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

type Rep1 WrappedMonoid = D1 ('MetaData "WrappedMonoid" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "WrapMonoid" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonoid") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
type Rep (WrappedMonoid m) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

type Rep (WrappedMonoid m) = D1 ('MetaData "WrappedMonoid" "Data.Semigroup" "base-4.22.0.0-66f8" 'True) (C1 ('MetaCons "WrapMonoid" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonoid") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m)))

Повторно экспортируемые моноиды

newtype Dual a Источник

Двойственный Monoid, полученный перестановкой аргументов (<>).

Dual a <> Dual b == Dual (b <> a)
Примеры
Развернуть
>>> Dual "Hello" <> Dual "World"
Dual {getDual = "WorldHello"}
>>> Dual (Dual "Hello") <> Dual (Dual "World")
Dual {getDual = Dual {getDual = "HelloWorld"}}

Конструкторы

Dual

Поля

  • getDual :: a
Экземпляры
Подробности экземпляров
Foldable1 Dual Исходный код

Начиная с: base-4.18.0.0

Подробности экземпляра

Определено в Data.Foldable1

Методы

fold1 :: Semigroup m => Dual m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Dual a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Dual a -> m Исходный код

toNonEmpty :: Dual a -> NonEmpty a Исходный код

maximum :: Ord a => Dual a -> a Исходный код

minimum :: Ord a => Dual a -> a Исходный код

head :: Dual a -> a Исходный код

last :: Dual a -> a Исходный код

foldrMap1 :: (a -> b) -> (a -> b -> b) -> Dual a -> b Исходный код

foldlMap1' :: (a -> b) -> (b -> a -> b) -> Dual a -> b Исходный код

foldlMap1 :: (a -> b) -> (b -> a -> b) -> Dual a -> b Исходный код

foldrMap1' :: (a -> b) -> (a -> b -> b) -> Dual a -> b Исходный код

Applicative Dual Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

pure :: a -> Dual a Исходный код

(<*>) :: Dual (a -> b) -> Dual a -> Dual b Исходный код

liftA2 :: (a -> b -> c) -> Dual a -> Dual b -> Dual c Исходный код

(*>) :: Dual a -> Dual b -> Dual b Исходный код

(<*) :: Dual a -> Dual b -> Dual a Исходный код

Functor Dual Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

fmap :: (a -> b) -> Dual a -> Dual b Исходный код

(<$) :: a -> Dual b -> Dual a Исходный код

Monad Dual Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(>>=) :: Dual a -> (a -> Dual b) -> Dual b Исходный код

(>>) :: Dual a -> Dual b -> Dual b Исходный код

return :: a -> Dual a Исходный код

MonadFix Dual Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Control.Monad.Fix

Методы

mfix :: (a -> Dual a) -> Dual a Исходный код

MonadZip Dual Исходный код

Начиная с: ghc-internal-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Control.Monad.Zip

Методы

mzip :: Dual a -> Dual b -> Dual (a, b) Исходный код

mzipWith :: (a -> b -> c) -> Dual a -> Dual b -> Dual c Исходный код

munzip :: Dual (a, b) -> (Dual a, Dual b) Исходный код

Foldable Dual Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Foldable

Методы

fold :: Monoid m => Dual m -> m Исходный код

foldMap :: Monoid m => (a -> m) -> Dual a -> m Исходный код

foldMap' :: Monoid m => (a -> m) -> Dual a -> m Исходный код

foldr :: (a -> b -> b) -> b -> Dual a -> b Исходный код

foldr' :: (a -> b -> b) -> b -> Dual a -> b Исходный код

foldl :: (b -> a -> b) -> b -> Dual a -> b Исходный код

foldl' :: (b -> a -> b) -> b -> Dual a -> b Исходный код

foldr1 :: (a -> a -> a) -> Dual a -> a Исходный код

foldl1 :: (a -> a -> a) -> Dual a -> a Исходный код

toList :: Dual a -> [a] Исходный код

null :: Dual a -> Bool Исходный код

length :: Dual a -> Int Исходный код

elem :: Eq a => a -> Dual a -> Bool Исходный код

maximum :: Ord a => Dual a -> a Исходный код

minimum :: Ord a => Dual a -> a Исходный код

sum :: Num a => Dual a -> a Исходный код

product :: Num a => Dual a -> a Исходный код

Traversable Dual Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Traversable

Методы

traverse :: Applicative f => (a -> f b) -> Dual a -> f (Dual b) Исходный код

sequenceA :: Applicative f => Dual (f a) -> f (Dual a) Исходный код

mapM :: Monad m => (a -> m b) -> Dual a -> m (Dual b) Исходный код

sequence :: Monad m => Dual (m a) -> m (Dual a) Исходный код

Generic1 Dual Исходный код
Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Связанные типы

type Rep1 Dual

Начиная с: base-4.7.0.0

Подробности экземпляра

Определено в 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))

Методы

from1 :: Dual a -> Rep1 Dual a Исходный код

to1 :: Rep1 Dual a -> Dual a Исходный код

Monoid a => Monoid (Dual a) Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

mempty :: Dual a Исходный код

mappend :: Dual a -> Dual a -> Dual a Исходный код

mconcat :: [Dual a] -> Dual a Исходный код

Semigroup a => Semigroup (Dual a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(<>) :: Dual a -> Dual a -> Dual a Исходный код

sconcat :: NonEmpty (Dual a) -> Dual a Исходный код

stimes :: Integral b => b -> Dual a -> Dual a Исходный код

Eq a => Eq (Dual a) Исходный код

Начиная с: base-2.1

Сведения об экземпляре

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(==) :: Dual a -> Dual a -> Bool Источник

(/=) :: Dual a -> Dual a -> Bool Источник

Ord a => Ord (Dual a) Источник

С версии: base-2.1

Сведения об экземпляре

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

compare :: Dual a -> Dual a -> Ordering Источник

(<) :: Dual a -> Dual a -> Bool Источник

(<=) :: Dual a -> Dual a -> Bool Источник

(>) :: Dual a -> Dual a -> Bool Источник

(>=) :: Dual a -> Dual a -> Bool Источник

max :: Dual a -> Dual a -> Dual a Источник

min :: Dual a -> Dual a -> Dual a Источник

Data a => Data (Dual a) Источник

С версии: base-4.8.0.0

Сведения об экземпляре

Определено в GHC.Internal.Data.Data

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Dual a -> c (Dual a) Источник

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Dual a) Источник

toConstr :: Dual a -> Constr Источник

dataTypeOf :: Dual a -> DataType Источник

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Dual a)) Источник

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Dual a)) Источник

gmapT :: (forall b. Data b => b -> b) -> Dual a -> Dual a Источник

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Dual a -> r Источник

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Dual a -> r Источник

gmapQ :: (forall d. Data d => d -> u) -> Dual a -> [u] Источник

gmapQi :: Int -> (forall d. Data d => d -> u) -> Dual a -> u Источник

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Dual a -> m (Dual a) Источник

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Dual a -> m (Dual a) Источник

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Dual a -> m (Dual a) Источник

Bounded a => Bounded (Dual a) Источник

С версии: base-2.1

Сведения об экземпляре

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

minBound :: Dual a Источник

maxBound :: Dual a Источник

Generic (Dual a) Источник
Сведения об экземпляре

Определено в GHC.Internal.Data.Semigroup.Internal

Связанные типы

type Rep (Dual a)

С версии: base-4.7.0.0

Сведения об экземпляре

Определено в 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)))

Методы

from :: Dual a -> Rep (Dual a) x Источник

to :: Rep (Dual a) x -> Dual a Источник

Read a => Read (Dual a) Источник

С версии: base-2.1

Сведения об экземпляре

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

readsPrec :: Int -> ReadS (Dual a) Источник

readList :: ReadS [Dual a] Источник

readPrec :: ReadPrec (Dual a) Источник

readListPrec :: ReadPrec [Dual a] Источник

Show a => Show (Dual a) Источник

С версии: base-2.1

Сведения об экземпляре

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

showsPrec :: Int -> Dual a -> ShowS Источник

show :: Dual a -> String Источник

showList :: [Dual a] -> ShowS Источник

type Rep1 Dual Источник

С версии: base-4.7.0.0

Сведения об экземпляре

Определено в 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) Источник

С версии: base-4.7.0.0

Сведения об экземпляре

Определено в 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 Источник

Моноид эндоморфизмов относительно композиции.

Endo f <> Endo g == Endo (f . g)
Примеры
Развернуть
>>> let computation = Endo ("Hello, " ++) <> Endo (++ "!")
>>> appEndo computation "Haskell"
"Hello, Haskell!"
>>> let computation = Endo (*3) <> Endo (+1)
>>> appEndo computation 1
6

Конструкторы

Endo

Поля

  • appEndo :: a -> a
Экземпляры
Подробности экземпляров
Monoid (Endo a) Источник

С версии: base-2.1

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

mempty :: Endo a Источник

mappend :: Endo a -> Endo a -> Endo a Источник

mconcat :: [Endo a] -> Endo a Источник

Semigroup (Endo a) Источник

С версии: base-4.9.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

(<>) :: Endo a -> Endo a -> Endo a Источник

sconcat :: NonEmpty (Endo a) -> Endo a Источник

stimes :: Integral b => b -> Endo a -> Endo a Источник

Generic (Endo a) Источник
Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Ассоциированные типы

type Rep (Endo a)

С версии: base-4.7.0.0

Подробности экземпляра

Определён в 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))))

Методы

from :: Endo a -> Rep (Endo a) x Источник

to :: Rep (Endo a) x -> Endo a Источник

type Rep (Endo a) Источник

С версии: base-4.7.0.0

Подробности экземпляра

Определён в 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))))

newtype All Источник

Булева моноида относительно конъюнкции (&&).

All x <> All y = All (x && y)
Примеры
Развернуть
>>> 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}

Конструкторы

All

Поля

  • getAll :: Bool
Экземпляры
Подробности экземпляров
Monoid All Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

mempty :: All Исходный код

mappend :: All -> All -> All Исходный код

mconcat :: [All] -> All Исходный код

Semigroup All Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(<>) :: All -> All -> All Исходный код

sconcat :: NonEmpty All -> All Исходный код

stimes :: Integral b => b -> All -> All Исходный код

Eq All Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(==) :: All -> All -> Bool Исходный код

(/=) :: All -> All -> Bool Исходный код

Ord All Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

compare :: All -> All -> Ordering Исходный код

(<) :: All -> All -> Bool Исходный код

(<=) :: All -> All -> Bool Исходный код

(>) :: All -> All -> Bool Исходный код

(>=) :: All -> All -> Bool Исходный код

max :: All -> All -> All Исходный код

min :: All -> All -> All Исходный код

Data All Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Data

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> All -> c All Исходный код

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c All Исходный код

toConstr :: All -> Constr Исходный код

dataTypeOf :: All -> DataType Исходный код

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c All) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c All) Исходный код

gmapT :: (forall b. Data b => b -> b) -> All -> All Исходный код

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> All -> r Исходный код

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> All -> r Исходный код

gmapQ :: (forall d. Data d => d -> u) -> All -> [u] Исходный код

gmapQi :: Int -> (forall d. Data d => d -> u) -> All -> u Исходный код

gmapM :: Monad m => (forall d. Data d => d -> m d) -> All -> m All Исходный код

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> All -> m All Исходный код

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> All -> m All Исходный код

Bounded All Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

minBound :: All Исходный код

maxBound :: All Исходный код

Generic All Исходный код
Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Ассоциированные типы

type Rep All

Начиная с: base-4.7.0.0

Подробности экземпляра

Определено в 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)))

Методы

from :: All -> Rep All x Исходный код

to :: Rep All x -> All Исходный код

Read All Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

readsPrec :: Int -> ReadS All Исходный код

readList :: ReadS [All] Исходный код

readPrec :: ReadPrec All Исходный код

readListPrec :: ReadPrec [All] Исходный код

Show All Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

showsPrec :: Int -> All -> ShowS Исходный код

show :: All -> String Исходный код

showList :: [All] -> ShowS Исходный код

type Rep All Исходный код

Начиная с: base-4.7.0.0

Подробности экземпляра

Определено в 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 Исходный код

Булева моноида относительно дизъюнкции (||).

Any x <> Any y = Any (x || y)
Примеры
Развернуть
>>> 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}

Конструкторы

Any

Поля

  • getAny :: Bool
Экземпляры
Подробности экземпляров
Monoid Any Источник

Начиная с: base-2.1

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

mempty :: Any Источник

mappend :: Any -> Any -> Any Источник

mconcat :: [Any] -> Any Источник

Semigroup Any Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

(<>) :: Any -> Any -> Any Источник

sconcat :: NonEmpty Any -> Any Источник

stimes :: Integral b => b -> Any -> Any Источник

Eq Any Источник

Начиная с: base-2.1

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

(==) :: Any -> Any -> Bool Источник

(/=) :: Any -> Any -> Bool Источник

Ord Any Источник

Начиная с: base-2.1

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

compare :: Any -> Any -> Ordering Источник

(<) :: Any -> Any -> Bool Источник

(<=) :: Any -> Any -> Bool Источник

(>) :: Any -> Any -> Bool Источник

(>=) :: Any -> Any -> Bool Источник

max :: Any -> Any -> Any Источник

min :: Any -> Any -> Any Источник

Data Any Источник

Начиная с: base-4.8.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Data

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Any -> c Any Источник

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Any Источник

toConstr :: Any -> Constr Источник

dataTypeOf :: Any -> DataType Источник

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Any) Источник

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Any) Источник

gmapT :: (forall b. Data b => b -> b) -> Any -> Any Источник

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Any -> r Источник

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Any -> r Источник

gmapQ :: (forall d. Data d => d -> u) -> Any -> [u] Источник

gmapQi :: Int -> (forall d. Data d => d -> u) -> Any -> u Источник

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Any -> m Any Источник

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Any -> m Any Источник

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Any -> m Any Источник

Bounded Any Источник

Начиная с: base-2.1

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

minBound :: Any Источник

maxBound :: Any Источник

Generic Any Источник
Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Связанные типы

type Rep Any

Начиная с: base-4.7.0.0

Подробности экземпляра

Определён в 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)))

Методы

from :: Any -> Rep Any x Источник

to :: Rep Any x -> Any Источник

Read Any Источник

Начиная с: base-2.1

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

readsPrec :: Int -> ReadS Any Источник

readList :: ReadS [Any] Источник

readPrec :: ReadPrec Any Источник

readListPrec :: ReadPrec [Any] Источник

Show Any Источник

Начиная с: base-2.1

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

showsPrec :: Int -> Any -> ShowS Источник

show :: Any -> String Источник

showList :: [Any] -> ShowS Источник

type Rep Any Источник

Начиная с: base-4.7.0.0

Подробности экземпляра

Определён в 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)))

newtype Sum a Источник

Моноид относительно сложения.

Sum a <> Sum b = Sum (a + b)
Примеры
Развернуть
>>> Sum 1 <> Sum 2 <> mempty
Sum {getSum = 3}
>>> mconcat [ Sum n | n <- [3 .. 9]]
Sum {getSum = 42}

Конструкторы

Sum

Поля

  • getSum :: a
Экземпляры
Подробности экземпляров
Foldable1 Sum Исходный код

Начиная с: base-4.18.0.0

Подробности экземпляра

Определено в Data.Foldable1

Методы

fold1 :: Semigroup m => Sum m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Sum a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Sum a -> m Исходный код

toNonEmpty :: Sum a -> NonEmpty a Исходный код

maximum :: Ord a => Sum a -> a Исходный код

minimum :: Ord a => Sum a -> a Исходный код

head :: Sum a -> a Исходный код

last :: Sum a -> a Исходный код

foldrMap1 :: (a -> b) -> (a -> b -> b) -> Sum a -> b Исходный код

foldlMap1' :: (a -> b) -> (b -> a -> b) -> Sum a -> b Исходный код

foldlMap1 :: (a -> b) -> (b -> a -> b) -> Sum a -> b Исходный код

foldrMap1' :: (a -> b) -> (a -> b -> b) -> Sum a -> b Исходный код

Applicative Sum Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

pure :: a -> Sum a Исходный код

(<*>) :: Sum (a -> b) -> Sum a -> Sum b Исходный код

liftA2 :: (a -> b -> c) -> Sum a -> Sum b -> Sum c Исходный код

(*>) :: Sum a -> Sum b -> Sum b Исходный код

(<*) :: Sum a -> Sum b -> Sum a Исходный код

Functor Sum Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

fmap :: (a -> b) -> Sum a -> Sum b Исходный код

(<$) :: a -> Sum b -> Sum a Исходный код

Monad Sum Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(>>=) :: Sum a -> (a -> Sum b) -> Sum b Исходный код

(>>) :: Sum a -> Sum b -> Sum b Исходный код

return :: a -> Sum a Исходный код

MonadFix Sum Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Control.Monad.Fix

Методы

mfix :: (a -> Sum a) -> Sum a Исходный код

MonadZip Sum Исходный код

Начиная с: ghc-internal-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Control.Monad.Zip

Методы

mzip :: Sum a -> Sum b -> Sum (a, b) Исходный код

mzipWith :: (a -> b -> c) -> Sum a -> Sum b -> Sum c Исходный код

munzip :: Sum (a, b) -> (Sum a, Sum b) Исходный код

Foldable Sum Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Foldable

Методы

fold :: Monoid m => Sum m -> m Исходный код

foldMap :: Monoid m => (a -> m) -> Sum a -> m Исходный код

foldMap' :: Monoid m => (a -> m) -> Sum a -> m Исходный код

foldr :: (a -> b -> b) -> b -> Sum a -> b Исходный код

foldr' :: (a -> b -> b) -> b -> Sum a -> b Исходный код

foldl :: (b -> a -> b) -> b -> Sum a -> b Исходный код

foldl' :: (b -> a -> b) -> b -> Sum a -> b Исходный код

foldr1 :: (a -> a -> a) -> Sum a -> a Исходный код

foldl1 :: (a -> a -> a) -> Sum a -> a Исходный код

toList :: Sum a -> [a] Исходный код

null :: Sum a -> Bool Исходный код

length :: Sum a -> Int Исходный код

elem :: Eq a => a -> Sum a -> Bool Исходный код

maximum :: Ord a => Sum a -> a Исходный код

minimum :: Ord a => Sum a -> a Исходный код

sum :: Num a => Sum a -> a Исходный код

product :: Num a => Sum a -> a Исходный код

Traversable Sum Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Traversable

Методы

traverse :: Applicative f => (a -> f b) -> Sum a -> f (Sum b) Исходный код

sequenceA :: Applicative f => Sum (f a) -> f (Sum a) Исходный код

mapM :: Monad m => (a -> m b) -> Sum a -> m (Sum b) Исходный код

sequence :: Monad m => Sum (m a) -> m (Sum a) Исходный код

Generic1 Sum Исходный код
Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Связанные типы

type Rep1 Sum

Начиная с: base-4.7.0.0

Подробности экземпляра

Определено в 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))

Методы

from1 :: Sum a -> Rep1 Sum a Исходный код

to1 :: Rep1 Sum a -> Sum a Исходный код

Num a => Monoid (Sum a) Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

mempty :: Sum a Исходный код

mappend :: Sum a -> Sum a -> Sum a Исходный код

mconcat :: [Sum a] -> Sum a Исходный код

Num a => Semigroup (Sum a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(<>) :: Sum a -> Sum a -> Sum a Исходный код

sconcat :: NonEmpty (Sum a) -> Sum a Исходный код

stimes :: Integral b => b -> Sum a -> Sum a Исходный код

Eq a => Eq (Sum a) Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(==) :: Sum a -> Sum a -> Bool Исходный код

(/=) :: Sum a -> Sum a -> Bool Исходный код

Ord a => Ord (Sum a) Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

compare :: Sum a -> Sum a -> Ordering Исходный код

(<) :: Sum a -> Sum a -> Bool Исходный код

(<=) :: Sum a -> Sum a -> Bool Исходный код

(>) :: Sum a -> Sum a -> Bool Исходный код

(>=) :: Sum a -> Sum a -> Bool Исходный код

max :: Sum a -> Sum a -> Sum a Исходный код

min :: Sum a -> Sum a -> Sum a Исходный код

Data a => Data (Sum a) Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Data

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Sum a -> c (Sum a) Исходный код

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Sum a) Исходный код

toConstr :: Sum a -> Constr Исходный код

dataTypeOf :: Sum a -> DataType Исходный код

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Sum a)) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Sum a)) Исходный код

gmapT :: (forall b. Data b => b -> b) -> Sum a -> Sum a Исходный код

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Sum a -> r Исходный код

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Sum a -> r Исходный код

gmapQ :: (forall d. Data d => d -> u) -> Sum a -> [u] Исходный код

gmapQi :: Int -> (forall d. Data d => d -> u) -> Sum a -> u Исходный код

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Sum a -> m (Sum a) Исходный код

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Sum a -> m (Sum a) Исходный код

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Sum a -> m (Sum a) Исходный код

Bounded a => Bounded (Sum a) Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

minBound :: Sum a Исходный код

maxBound :: Sum a Исходный код

Generic (Sum a) Исходный код
Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Связанные типы

type Rep (Sum a)

Начиная с: base-4.7.0.0

Подробности экземпляра

Определено в 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)))

Методы

from :: Sum a -> Rep (Sum a) x Исходный код

to :: Rep (Sum a) x -> Sum a Исходный код

Num a => Num (Sum a) Исходный код

Начиная с: base-4.7.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

(+) :: Sum a -> Sum a -> Sum a Исходный код

(-) :: Sum a -> Sum a -> Sum a Исходный код

(*) :: Sum a -> Sum a -> Sum a Исходный код

negate :: Sum a -> Sum a Исходный код

abs :: Sum a -> Sum a Исходный код

signum :: Sum a -> Sum a Исходный код

fromInteger :: Integer -> Sum a Исходный код

Read a => Read (Sum a) Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

readsPrec :: Int -> ReadS (Sum a) Исходный код

readList :: ReadS [Sum a] Исходный код

readPrec :: ReadPrec (Sum a) Исходный код

readListPrec :: ReadPrec [Sum a] Исходный код

Show a => Show (Sum a) Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

showsPrec :: Int -> Sum a -> ShowS Исходный код

show :: Sum a -> String Исходный код

showList :: [Sum a] -> ShowS Исходный код

type Rep1 Sum Исходный код

Начиная с: base-4.7.0.0

Подробности экземпляра

Определено в 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) Исходный код

Начиная с: base-4.7.0.0

Подробности экземпляра

Определено в 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 Исходный код

Моноид относительно умножения.

Product x <> Product y == Product (x * y)
Примеры
Развернуть
>>> Product 3 <> Product 4 <> mempty
Product {getProduct = 12}
>>> mconcat [ Product n | n <- [2 .. 10]]
Product {getProduct = 3628800}

Конструкторы

Product

Поля

  • getProduct :: a
Экземпляры
Подробности экземпляров
Foldable1 Product Исходный код

Начиная с: base-4.18.0.0

Подробности экземпляра

Определён в Data.Foldable1

Методы

fold1 :: Semigroup m => Product m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Product a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Product a -> m Исходный код

toNonEmpty :: Product a -> NonEmpty a Исходный код

maximum :: Ord a => Product a -> a Исходный код

minimum :: Ord a => Product a -> a Исходный код

head :: Product a -> a Исходный код

last :: Product a -> a Исходный код

foldrMap1 :: (a -> b) -> (a -> b -> b) -> Product a -> b Исходный код

foldlMap1' :: (a -> b) -> (b -> a -> b) -> Product a -> b Исходный код

foldlMap1 :: (a -> b) -> (b -> a -> b) -> Product a -> b Исходный код

foldrMap1' :: (a -> b) -> (a -> b -> b) -> Product a -> b Исходный код

Applicative Product Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

pure :: a -> Product a Исходный код

(<*>) :: Product (a -> b) -> Product a -> Product b Исходный код

liftA2 :: (a -> b -> c) -> Product a -> Product b -> Product c Исходный код

(*>) :: Product a -> Product b -> Product b Исходный код

(<*) :: Product a -> Product b -> Product a Исходный код

Functor Product Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

fmap :: (a -> b) -> Product a -> Product b Исходный код

(<$) :: a -> Product b -> Product a Исходный код

Monad Product Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

(>>=) :: Product a -> (a -> Product b) -> Product b Исходный код

(>>) :: Product a -> Product b -> Product b Исходный код

return :: a -> Product a Исходный код

MonadFix Product Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определён в GHC.Internal.Control.Monad.Fix

Методы

mfix :: (a -> Product a) -> Product a Исходный код

MonadZip Product Исходный код

Начиная с: ghc-internal-4.8.0.0

Подробности экземпляра

Определён в GHC.Internal.Control.Monad.Zip

Методы

mzip :: Product a -> Product b -> Product (a, b) Исходный код

mzipWith :: (a -> b -> c) -> Product a -> Product b -> Product c Исходный код

munzip :: Product (a, b) -> (Product a, Product b) Исходный код

Foldable Product Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Foldable

Методы

fold :: Monoid m => Product m -> m Исходный код

foldMap :: Monoid m => (a -> m) -> Product a -> m Исходный код

foldMap' :: Monoid m => (a -> m) -> Product a -> m Исходный код

foldr :: (a -> b -> b) -> b -> Product a -> b Исходный код

foldr' :: (a -> b -> b) -> b -> Product a -> b Исходный код

foldl :: (b -> a -> b) -> b -> Product a -> b Исходный код

foldl' :: (b -> a -> b) -> b -> Product a -> b Исходный код

foldr1 :: (a -> a -> a) -> Product a -> a Исходный код

foldl1 :: (a -> a -> a) -> Product a -> a Исходный код

toList :: Product a -> [a] Исходный код

null :: Product a -> Bool Исходный код

length :: Product a -> Int Исходный код

elem :: Eq a => a -> Product a -> Bool Исходный код

maximum :: Ord a => Product a -> a Исходный код

minimum :: Ord a => Product a -> a Исходный код

sum :: Num a => Product a -> a Исходный код

product :: Num a => Product a -> a Исходный код

Traversable Product Исходный код

Начиная с: base-4.8.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Traversable

Методы

traverse :: Applicative f => (a -> f b) -> Product a -> f (Product b) Исходный код

sequenceA :: Applicative f => Product (f a) -> f (Product a) Исходный код

mapM :: Monad m => (a -> m b) -> Product a -> m (Product b) Исходный код

sequence :: Monad m => Product (m a) -> m (Product a) Исходный код

Generic1 Product Исходный код
Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Связанные типы

type Rep1 Product

Начиная с: base-4.7.0.0

Подробности экземпляра

Определён в 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))

Методы

from1 :: Product a -> Rep1 Product a Исходный код

to1 :: Rep1 Product a -> Product a Исходный код

Num a => Monoid (Product a) Исходный код

Начиная с: base-2.1

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

mempty :: Product a Исходный код

mappend :: Product a -> Product a -> Product a Исходный код

mconcat :: [Product a] -> Product a Исходный код

Num a => Semigroup (Product a) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

(<>) :: Product a -> Product a -> Product a Исходный код

sconcat :: NonEmpty (Product a) -> Product a Исходный код

stimes :: Integral b => b -> Product a -> Product a Исходный код

Eq a => Eq (Product a) Источник

Начиная с: base-2.1

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

(==) :: Product a -> Product a -> Bool Источник

(/=) :: Product a -> Product a -> Bool Источник

Ord a => Ord (Product a) Источник

Начиная с: base-2.1

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

compare :: Product a -> Product a -> Ordering Источник

(<) :: Product a -> Product a -> Bool Источник

(<=) :: Product a -> Product a -> Bool Источник

(>) :: Product a -> Product a -> Bool Источник

(>=) :: Product a -> Product a -> Bool Источник

max :: Product a -> Product a -> Product a Источник

min :: Product a -> Product a -> Product a Источник

Data a => Data (Product a) Источник

Начиная с: base-4.8.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Data

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Product a -> c (Product a) Источник

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Product a) Источник

toConstr :: Product a -> Constr Источник

dataTypeOf :: Product a -> DataType Источник

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Product a)) Источник

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Product a)) Источник

gmapT :: (forall b. Data b => b -> b) -> Product a -> Product a Источник

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Product a -> r Источник

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Product a -> r Источник

gmapQ :: (forall d. Data d => d -> u) -> Product a -> [u] Источник

gmapQi :: Int -> (forall d. Data d => d -> u) -> Product a -> u Источник

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Product a -> m (Product a) Источник

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Product a -> m (Product a) Источник

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Product a -> m (Product a) Источник

Bounded a => Bounded (Product a) Источник

Начиная с: base-2.1

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

minBound :: Product a Источник

maxBound :: Product a Источник

Generic (Product a) Источник
Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Связанные типы

type Rep (Product a)

Начиная с: base-4.7.0.0

Подробности экземпляра

Определён в 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)))

Методы

from :: Product a -> Rep (Product a) x Источник

to :: Rep (Product a) x -> Product a Источник

Num a => Num (Product a) Источник

Начиная с: base-4.7.0.0

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

(+) :: Product a -> Product a -> Product a Источник

(-) :: Product a -> Product a -> Product a Источник

(*) :: Product a -> Product a -> Product a Источник

negate :: Product a -> Product a Источник

abs :: Product a -> Product a Источник

signum :: Product a -> Product a Источник

fromInteger :: Integer -> Product a Источник

Read a => Read (Product a) Источник

Начиная с: base-2.1

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

readsPrec :: Int -> ReadS (Product a) Источник

readList :: ReadS [Product a] Источник

readPrec :: ReadPrec (Product a) Источник

readListPrec :: ReadPrec [Product a] Источник

Show a => Show (Product a) Источник

Начиная с: base-2.1

Подробности экземпляра

Определён в GHC.Internal.Data.Semigroup.Internal

Методы

showsPrec :: Int -> Product a -> ShowS Источник

show :: Product a -> String Источник

showList :: [Product a] -> ShowS Источник

type Rep1 Product Источник

Начиная с: base-4.7.0.0

Подробности экземпляра

Определён в 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) Источник

Начиная с: base-4.7.0.0

Подробности экземпляра

Определён в 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)))

Разностные списки полугруппы

diff :: Semigroup m => m -> Endo m Источник

Это позволяет использовать разностный список Semigroup в качестве Monoid.

Примеры
Развернуть
>>> let hello = diff "Hello, "
>>> appEndo hello "World!"
"Hello, World!"
>>> appEndo (hello <> mempty) "World!"
"Hello, World!"
>>> appEndo (mempty <> hello) "World!"
"Hello, World!"
>>> let world = diff "World"
>>> let excl = diff "!"
>>> appEndo (hello <> (world <> excl)) mempty
"Hello, World!"
>>> appEndo ((hello <> world) <> excl) mempty
"Hello, World!"

cycle1 :: Semigroup m => m -> m Источник

Обобщение cycle на произвольный Semigroup. Для некоторых значений в некоторых полугруппах вычисление может не завершиться.

Примеры
Развернуть
>>> take 10 $ cycle1 [1, 2, 3]
[1,2,3,1,2,3,1,2,3,1]
>>> cycle1 (Right 1)
Right 1
>>> cycle1 (Left 1)
* Hangs forever *

ArgMin, ArgMax

data Arg a b Источник

Arg сам по себе не является Semigroup, но его можно поместить внутрь Min и Max, чтобы вычислить arg min или arg max. При равенстве выбирается крайний слева подходящий Arg; это отличается от поведения minimum и maximum для многих других типов, где равенство разрешается с учётом того, что элементы слева в структуре считаются меньшими элементов справа.

Примеры
Развернуть
>>> minimum [ Arg (x * x) x | x <- [-10 .. 10] ]
Arg 0 0
>>> maximum [ Arg (-0.2*x^2 + 1.5*x + 1) x | x <- [-10 .. 10] ]
Arg 3.8 4.0
>>> minimum [ Arg (-0.2*x^2 + 1.5*x + 1) x | x <- [-10 .. 10] ]
Arg (-34.0) (-10.0)

Конструкторы

Arg

Поля

  • a

    Аргумент, используемый для сравнений в Eq и Ord.

  • b

    «Значение», предоставляемое экземплярами Functor, Foldable и т. д.

Экземпляры
Сведения об экземплярах
Bifoldable Arg Источник

Начиная с: base-4.10.0.0

Сведения об экземпляре

Определён в Data.Semigroup

Методы

bifold :: Monoid m => Arg m m -> m Источник

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> Arg a b -> m Источник

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> Arg a b -> c Источник

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> Arg a b -> c Источник

Bifoldable1 Arg Источник
Сведения об экземпляре

Определён в Data.Bifoldable1

Методы

bifold1 :: Semigroup m => Arg m m -> m Источник

bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> Arg a b -> m Источник

Bifunctor Arg Источник

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определён в Data.Semigroup

Методы

bimap :: (a -> b) -> (c -> d) -> Arg a c -> Arg b d Источник

first :: (a -> b) -> Arg a c -> Arg b c Источник

second :: (b -> c) -> Arg a b -> Arg a c Источник

Bitraversable Arg Источник

Начиная с: base-4.10.0.0

Сведения об экземпляре

Определён в Data.Semigroup

Методы

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Arg a b -> f (Arg c d) Источник

Generic1 (Arg a :: Type -> Type) Источник
Сведения об экземпляре

Определён в Data.Semigroup

Ассоциированные типы

type Rep1 (Arg a :: Type -> Type)

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определён в Data.Semigroup

type Rep1 (Arg a :: Type -> Type) = D1 ('MetaData "Arg" "Data.Semigroup" "base-4.22.0.0-66f8" 'False) (C1 ('MetaCons "Arg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))

Методы

from1 :: Arg a a0 -> Rep1 (Arg a) a0 Источник

to1 :: Rep1 (Arg a) a0 -> Arg a a0 Источник

Functor (Arg a) Источник

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определён в Data.Semigroup

Методы

fmap :: (a0 -> b) -> Arg a a0 -> Arg a b Источник

(<$) :: a0 -> Arg a b -> Arg a a0 Источник

Foldable (Arg a) Источник

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определён в Data.Semigroup

Методы

fold :: Monoid m => Arg a m -> m Источник

foldMap :: Monoid m => (a0 -> m) -> Arg a a0 -> m Источник

foldMap' :: Monoid m => (a0 -> m) -> Arg a a0 -> m Источник

foldr :: (a0 -> b -> b) -> b -> Arg a a0 -> b Источник

foldr' :: (a0 -> b -> b) -> b -> Arg a a0 -> b Источник

foldl :: (b -> a0 -> b) -> b -> Arg a a0 -> b Источник

foldl' :: (b -> a0 -> b) -> b -> Arg a a0 -> b Источник

foldr1 :: (a0 -> a0 -> a0) -> Arg a a0 -> a0 Источник

foldl1 :: (a0 -> a0 -> a0) -> Arg a a0 -> a0 Источник

toList :: Arg a a0 -> [a0] Источник

null :: Arg a a0 -> Bool Источник

length :: Arg a a0 -> Int Источник

elem :: Eq a0 => a0 -> Arg a a0 -> Bool Источник

maximum :: Ord a0 => Arg a a0 -> a0 Источник

minimum :: Ord a0 => Arg a a0 -> a0 Источник

sum :: Num a0 => Arg a a0 -> a0 Источник

product :: Num a0 => Arg a a0 -> a0 Источник

Traversable (Arg a) Источник

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определён в Data.Semigroup

Методы

traverse :: Applicative f => (a0 -> f b) -> Arg a a0 -> f (Arg a b) Источник

sequenceA :: Applicative f => Arg a (f a0) -> f (Arg a a0) Источник

mapM :: Monad m => (a0 -> m b) -> Arg a a0 -> m (Arg a b) Источник

sequence :: Monad m => Arg a (m a0) -> m (Arg a a0) Источник

Eq a => Eq (Arg a b) Источник

Обратите внимание, что экземпляр Arg для Eq не удовлетворяет экстенсиональности:

>>> Arg 0 0 == Arg 0 1
True
>>> let f (Arg _ x) = x in f (Arg 0 0) == f (Arg 0 1)
False

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определён в Data.Semigroup

Методы

(==) :: Arg a b -> Arg a b -> Bool Источник

(/=) :: Arg a b -> Arg a b -> Bool Источник

Ord a => Ord (Arg a b) Источник

Обратите внимание, что экземпляр Ord для Arg имеет реализации min и max, отличающиеся от правил разрешения равенства, используемых реализацией по умолчанию для min и max в классе Ord; Arg разрешает равенство, отдавая предпочтение первому аргументу в обеих функциях.

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определён в Data.Semigroup

Методы

compare :: Arg a b -> Arg a b -> Ordering Источник

(<) :: Arg a b -> Arg a b -> Bool Источник

(<=) :: Arg a b -> Arg a b -> Bool Источник

(>) :: Arg a b -> Arg a b -> Bool Источник

(>=) :: Arg a b -> Arg a b -> Bool Источник

max :: Arg a b -> Arg a b -> Arg a b Источник

min :: Arg a b -> Arg a b -> Arg a b Источник

(Data a, Data b) => Data (Arg a b) Источник

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Arg a b -> c (Arg a b) Исходный код

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Arg a b) Исходный код

toConstr :: Arg a b -> Constr Исходный код

dataTypeOf :: Arg a b -> DataType Исходный код

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Arg a b)) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Arg a b)) Исходный код

gmapT :: (forall b0. Data b0 => b0 -> b0) -> Arg a b -> Arg a b Исходный код

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r Исходный код

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r Исходный код

gmapQ :: (forall d. Data d => d -> u) -> Arg a b -> [u] Исходный код

gmapQi :: Int -> (forall d. Data d => d -> u) -> Arg a b -> u Исходный код

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) Исходный код

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) Исходный код

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) Исходный код

Generic (Arg a b) Исходный код
Подробности экземпляра

Определён в Data.Semigroup

Связанные типы

type Rep (Arg a b)

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

type Rep (Arg a b) = D1 ('MetaData "Arg" "Data.Semigroup" "base-4.22.0.0-66f8" 'False) (C1 ('MetaCons "Arg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)))

Методы

from :: Arg a b -> Rep (Arg a b) x Исходный код

to :: Rep (Arg a b) x -> Arg a b Исходный код

(Read a, Read b) => Read (Arg a b) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

readsPrec :: Int -> ReadS (Arg a b) Исходный код

readList :: ReadS [Arg a b] Исходный код

readPrec :: ReadPrec (Arg a b) Исходный код

readListPrec :: ReadPrec [Arg a b] Исходный код

(Show a, Show b) => Show (Arg a b) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

Методы

showsPrec :: Int -> Arg a b -> ShowS Исходный код

show :: Arg a b -> String Исходный код

showList :: [Arg a b] -> ShowS Исходный код

type Rep1 (Arg a :: Type -> Type) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

type Rep1 (Arg a :: Type -> Type) = D1 ('MetaData "Arg" "Data.Semigroup" "base-4.22.0.0-66f8" 'False) (C1 ('MetaCons "Arg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
type Rep (Arg a b) Исходный код

Начиная с: base-4.9.0.0

Подробности экземпляра

Определён в Data.Semigroup

type Rep (Arg a b) = D1 ('MetaData "Arg" "Data.Semigroup" "base-4.22.0.0-66f8" 'False) (C1 ('MetaCons "Arg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)))

type ArgMin a b = Min (Arg a b) Исходный код

Примеры
Развернуть
>>> Min (Arg 0 ()) <> Min (Arg 1 ())
Min {getMin = Arg 0 ()}
>>> minimum [ Arg (length name) name | name <- ["violencia", "lea", "pixie"]]
Arg 3 "lea"

type ArgMax a b = Max (Arg a b) Исходный код

Примеры
Развернуть
>>> Max (Arg 0 ()) <> Max (Arg 1 ())
Max {getMax = Arg 1 ()}
>>> maximum [ Arg (length name) name | name <- ["violencia", "lea", "pixie"]]
Arg 9 "violencia"

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.14.1/docs/libraries/base-4.22.0.0-66f8/Data-Semigroup.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API