GHC.Generics
| Copyright | (с) Universiteit Utrecht 2010-2011 University of Oxford 2012-2014 |
|---|---|
| License | см. libraries/base/LICENSE |
| Maintainer | libraries@haskell.org |
| Stability | internal |
| Portability | непортабельно |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Описание
Если вы используете GHC.Generics, стоит рассмотреть пакет http://hackage.haskell.org/package/generic-deriving, содержащий много полезных обобщённых функций.
С версии: base-4.6.0.0
Введение
Функции, обобщённые по типу данных, основаны на идее преобразования значений типа данных T в соответствующие значения (почти) изоморфного типа Rep T. Тип Rep T построен из ограниченного набора конструкторов типов, все они предоставляются этим модулем. Функция, обобщённая по типу данных, — это перегруженная функция с реализациями для большинства этих конструкторов типов, наряду с обёрткой, которая выполняет отображение между T и Rep T. Используя эту технику, нам нужно всего несколько обобщённых реализаций, чтобы реализовать функциональность, работающую для любого представимого типа.
Представимые типы собраны в классе Generic, который определяет связанный тип Rep, а также функции преобразования from и to. Как правило, вы не будете определять реализации Generic вручную, а позволите компилятору сгенерировать их.
Представление типов данных
Ключ к определению собственных функций, обобщённых по типу данных, заключается в понимании того, как представлять типы данных с использованием заданного набора конструкторов типов.
Давайте сначала рассмотрим пример:
data Tree a = Leaf a | Node (Tree a) (Tree a) deriving Generic
Вышеприведённое объявление (которое требует псевдонима языка DeriveGeneric) приводит к генерации следующего представления:
instance Generic (Tree a) where type Rep (Tree a) = D1 ('MetaData "Tree" "Main" "package-name" 'False) (C1 ('MetaCons "Leaf" 'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "Node" 'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Tree a)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Tree a)))) ...
Подсказка: Вы можете получить информацию о генерируемом коде из GHC, передав флаг -ddump-deriv. В GHCi вы можете развернуть семейство типов, например, Rep, используя команду :kind!.
Это много информации! Однако большая её часть — это метаинформация, которая делает доступными имена типов данных и конструкторов на уровне типов.
Вот упрощённое представление для Tree, из которого почти удалена вся метаинформация, оставляя лишь самые существенные аспекты:
instance Generic (Tree a) where type Rep (Tree a) = Rec0 a :+: (Rec0 (Tree a) :*: Rec0 (Tree a))
Тип Tree имеет два конструктора. Представление отдельных конструкторов объединяется с помощью бинарного конструктора типов :+:.
Первый конструктор состоит из одного поля, являющегося параметром a. Это представлено как Rec0 a.
Второй конструктор состоит из двух полей. Каждое является рекурсивным полем типа Tree a, представленным как Rec0 (Tree a). Представления отдельных полей объединяются с использованием бинарного конструктора типов :*:.
Теперь давайте объясним дополнительные теги, используемые в полном представлении:
- Тег
S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy)указывает на несколько вещей.'Nothingуказывает, что с этим полем конструктора не связан выборник записи (если бы он был, он был бы помечен как'Just "recordName"). Другие типы содержат метаинформацию о строгости поля: - В исходном коде нет аннотаций
{-# UNPACK #-}или{-# NOUNPACK #-}, поэтому он помечен как'NoSourceUnpackedness. - В исходном коде нет аннотаций строгости (
!) или ленивости (~), поэтому он помечен как'NoSourceStrictness. - Компилятор определяет, что поле ленивое, поэтому оно помечено как
'DecidedLazy. Имейте в виду, что то, что решает компилятор, может сильно отличаться от написанного в источнике. См.DecidedStrictnessдля более подробного объяснения.
Тип 'MetaSel также является экземпляром класса типов Selector, который может использоваться для получения информации о поле на уровне значений.
- Вызовы
C1 ('MetaCons "Leaf" 'PrefixI 'False)иC1 ('MetaCons "Node" 'PrefixI 'False)указывают, что заключенная часть — это представление первого и второго конструктора типа данныхTreeсоответственно. Здесь метаинформация о названиях конструкторов, фиксированности и наличии именованных полей или их отсутствии закодирована на уровне типов. Тип'MetaConsтакже является экземпляром класса типовConstructor. Этот класс типов может быть использован для получения информации о конструкторе на уровне значений. - Тег
D1 ('MetaData "Tree" "Main" "package-name" 'False)указывает, что заключенная часть — это представление типа данныхTree. Снова метаинформация кодируется на уровне типов. Тип'MetaDataявляется экземпляром классаDatatype, который может быть использован для получения имени типа данных, модуля, в котором он определён, пакета, в котором он находится, и того, был ли он определён с использованиемdataилиnewtypeна уровне значений.
Производные и фундаментальные типы представления
Существует много функций, обобщённых по типу данных, которые не различают позиции параметров и позиции рекурсивных вызовов. Также существует много функций, обобщённых по типу данных, которые вообще не обращают внимания на имена типов данных и конструкторов. Для минимизации числа случаев, которые нужно рассматривать в таких обобщённых функциях, оказывается, что многие из конструкторов типов, представленных выше, на самом деле являются синонимами, определяющими их как варианты меньшего набора конструкторов.
Отдельные поля конструкторов: K1
Конструктор типов Rec0 является вариантом K1:
type Rec0 = K1 R
Здесь R — это прокси-тип на уровне типов, не имеющий связанных значений.
Раньше существовал другой вариант K1 (а именно Par0), но с тех пор он устарел.
Метаинформация: M1
Конструкторы типов S1, C1 и D1 — все варианты M1:
type S1 = M1 S type C1 = M1 C type D1 = M1 D
Типы S, C и D снова являются прокси-типами на уровне типов, просто используемыми для создания нескольких вариантов M1.
Дополнительные конструкторы типов общего представления
Помимо K1, M1, :+: и :*:, есть ещё несколько конструкторов типов, которые встречаются в представлениях других типов данных.
Пустые типы данных: V1
Для пустых типов данных используется представление V1. Например,
data Empty deriving Generic
приводит к
instance Generic Empty where type Rep Empty = D1 ('MetaData "Empty" "Main" "package-name" 'False) V1
Конструкторы без полей: U1
Если у конструктора нет аргументов, то его представление — U1. Например, представление Bool —
instance Generic Bool where type Rep Bool = D1 ('MetaData "Bool" "Data.Bool" "package-name" 'False) (C1 ('MetaCons "False" 'PrefixI 'False) U1 :+: C1 ('MetaCons "True" 'PrefixI 'False) U1)
Представление типов с многими конструкторами или многими полями
Поскольку :+: и :*: — это просто бинарные операторы, можно спросить, что происходит, если у типа данных более двух конструкторов или конструктор с более чем двумя полями. Ответ прост: операторы используются несколько раз, чтобы объединить все конструкторы и поля по мере необходимости. Однако пользователи /не должны полагаться на определённую стратегию вложенности/ для использования :+: и :*:. Компилятор свободен выбирать любое предпочитаемое им вложение. (На практике текущая реализация пытается создать вложение более-менее сбалансированное, чтобы обход структуры типа данных от корня до определённого компонента можно было выполнить за логарифмическое, а не линейное время.)
Определение функций, обобщённых по типу данных
Функция, обобщённая по типу данных, состоит из двух частей:
- Обобщённые реализации для функции, реализующей её для большинства конструкторов типов представления, представленных выше.
- Обёртка, которая для любого типа данных, принадлежащего
Generic, выполняет преобразование между исходным значением и его представлением, основанным наRep, а затем вызывает обобщённые реализации.
В качестве примера рассмотрим функцию encode, которая генерирует наивное, но без потерь двоичное кодирование значений различных типов данных. Таким образом, мы хотим определить функцию
encode :: Generic a => a -> [Bool]
где мы используем Bool в качестве нашего типа для битов.
Для части 1 мы определяем класс Encode'. Возможно, неожиданно, этот класс параметризован с помощью конструктора типа f вида * -> *. Это техническая деталь: все конструкторы типов представления работают с видом * -> * в качестве базового вида. Но аргумент типа никогда не используется. Это может быть изменено в будущем.
Класс имеет один метод, и мы используем тип, который мы хотим иметь для нашей конечной функции, но мы заменяем вхождения универсального аргумента типа a на f p (где p — любой аргумент; он не будет использоваться).
class Encode' f where encode' :: f p -> [Bool]
С целью сделать encode работающим с Tree и другими типами данных, мы сейчас определяем экземпляры для конструкторов типов представления V1, U1, :+:, :*:, K1 и M1.
Определение универсальных типов представления
Для этого нам нужно знать фактические определения этих типов:
data V1 p -- lifted version of Empty data U1 p = U1 -- lifted version of () data (:+:) f g p = L1 (f p) | R1 (g p) -- lifted version of Either data (:*:) f g p = (f p) :*: (g p) -- lifted version of (,) newtype K1 i c p = K1 { unK1 :: c } -- a container for a c newtype M1 i t f p = M1 { unM1 :: f p } -- a wrapper
Таким образом, U1 — это просто тип единицы, :+: — это просто бинарный выбор, подобный Either, :*: — это бинарная пара, подобная конструктору пар (,), а K1 — это значение определенного типа c, и M1 оборачивает значение универсального аргумента типа, которое в поднятом мире является f p (где нас не интересует p).
Универсальные экземпляры
Для обработки случая V1 мы используем следующий код (который требует пragma EmptyCase):
instance Encode' V1 where encode' x = case x of { }
Нет значений типа V1 p для передачи, поэтому невозможно вызвать эту функцию. Можно спросить, зачем вообще полезно определять экземпляр для V1 в этом случае? Ну, пустой тип может использоваться в качестве аргумента для непустого типа, и вы всё ещё можете захотеть закодировать результирующий тип. Как несколько искусственный пример, рассмотрим [Empty], который не является пустым типом, но содержит только пустой список. Экземпляр V1 гарантирует, что мы можем вызвать универсальную функцию для таких типов.
Существует ровно одно значение типа U1, поэтому для его кодирования не требуется никакой информации, и мы можем использовать ноль бит:
instance Encode' U1 where encode' U1 = []
В случае для :+: мы получаем False или True в зависимости от того, находится ли конструктор предоставленного значения слева или справа:
instance (Encode' f, Encode' g) => Encode' (f :+: g) where encode' (L1 x) = False : encode' x encode' (R1 x) = True : encode' x
(Обратите внимание, что эта стратегия кодирования может быть ненадежной в разных версиях GHC. Помните, что компилятор свободен выбирать любую вложенность :+:, которую он выбирает, поэтому если GHC выберет (a :+: b) :+: c, то кодирование для a будет [False, False], b будет [False, True], а c будет [True]. Однако, если GHC выберет a :+: (b :+: c), то кодирование для a будет [False], b будет [True, False], а c будет [True, True].)
В случае для :*: мы добавляем кодировки двух подкомпонентов:
instance (Encode' f, Encode' g) => Encode' (f :*: g) where encode' (x :*: y) = encode' x ++ encode' y
Случай для K1 довольно интересный. Здесь мы рекурсивно вызываем конечную функцию encode, которую мы ещё должны определить. Мы будем использовать другой класс типов Encode для этой функции:
instance (Encode c) => Encode' (K1 i c) where encode' (K1 x) = encode x
Обратите внимание, как мы можем определить единообразный экземпляр для M1, потому что мы полностью игнорируем всю метаинформацию:
instance (Encode' f) => Encode' (M1 i t f) where encode' (M1 x) = encode' x
В отличие от K1, экземпляр для M1 относится к encode', а не к encode.
Оборачивание и универсальный по умолчанию
Сейчас мы определим класс Encode для фактической функции encode:
class Encode a where encode :: a -> [Bool] default encode :: (Generic a, Encode' (Rep a)) => a -> [Bool] encode x = encode' (from x)
Входящий x преобразуется с помощью from, затем мы переходим к универсальным экземплярам с помощью encode'. Мы используем это как определение по умолчанию для encode. Нам нужна подпись default encode, потому что обычные методы по умолчанию Haskell не должны вводить дополнительные ограничения классов, но наш универсальный по умолчанию это делает.
Определение конкретного экземпляра теперь так же просто, как сказать
instance (Encode a) => Encode (Tree a)
Используется универсальный по умолчанию. В будущем, надеюсь, будет возможно использовать deriving Encode также, но GHC пока не поддерживает этот синтаксис в данной ситуации.
Иметь Encode в качестве класса имеет преимущество, что мы можем определять не универсальные специальные случаи, что особенно полезно для абстрактных типов данных, не имеющих структурного представления. Например, с подходящей функцией кодирования целых чисел encodeInt мы можем определить
instance Encode Int where encode = encodeInt
Пропуск универсальных экземпляров
Не всегда требуется предоставлять экземпляры для всех универсальных типов представления, но пропуск экземпляров ограничивает набор типов данных, для которых будут работать функции:
- Если экземпляр
:+:не предоставлен, функция может всё ещё работать с пустыми типами данных или типами данных, у которых есть один конструктор, но потерпит неудачу с типами данных, имеющими более одного конструктора. - Если экземпляр
:*:не предоставлен, функция может всё ещё работать с типами данных, где каждый конструктор имеет только ноль или один поле, особенно для типов перечисления. - Если экземпляр
K1не предоставлен, функция может всё ещё работать с типами перечисления, где ни один конструктор не имеет полей. - Если экземпляр
V1не предоставлен, функция может всё ещё работать для любого непустого типа данных. - Если экземпляр
U1не предоставлен, функция может всё ещё работать для любого типа данных, где каждый конструктор имеет по крайней мере одно поле.
Экземпляр M1 всегда требуется (но он может просто игнорировать метаинформацию, как в случае с encode выше).
- * Универсальные классы конструкторов
|
Функции, универсальные по типу данных, как определено выше, работают с широким классом типов данных, включая параметризованные типы данных. (Мы использовали Tree в качестве нашего примера выше, который имеет вид * -> *.) Однако, класс Generic охватывает типы вида *, и, следовательно, результирующие универсальные функции (такие как encode) должны быть параметризованы универсальным аргументом типа вида *.
Что, если мы хотим определить универсальные классы, которые охватывают конструкторы типов (такие как Functor, Traversable или Foldable)?
Класс Generic1
Подобно Generic, существует класс Generic1, который определяет представление Rep1 и функции преобразования from1 и to1, только что Generic1 охватывает типы вида * -> *. (Более общо, он может охватывать типы вида k -> * для любого вида k, если включено расширение PolyKinds. Подробнее об этом позже.) Класс Generic1 также выводим.
Представление Rep1 немного отличается от Rep. Давайте рассмотрим Tree в качестве примера ещё раз:
data Tree a = Leaf a | Node (Tree a) (Tree a) deriving Generic1
Вышеприведённое объявление приводит к следующему представлению:
instance Generic1 Tree where type Rep1 Tree = D1 ('MetaData "Tree" "Main" "package-name" 'False) (C1 ('MetaCons "Leaf" 'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "Node" 'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Tree) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Tree))) ...
Представление повторно использует D1, C1, S1 (и, следовательно, M1), а также :+: и :*: из Rep. (Это повторное использование является причиной, по которой мы храним фиктивный аргумент типа для типов вида-*, но уже достаточно разных имён без дублирования каждого из них.)
Отличие заключается в том, что мы теперь используем Par1 для ссылки на параметр (и этот параметр, который раньше был a), нигде не упоминается явно по имени; и мы используем Rec1 для ссылки на рекурсивное использование Tree a.
Представление типов * -> *
В отличие от Rec0, конструкторы типов Par1 и Rec1 не отображаются на K1. Они определяются непосредственно, как показано ниже:
newtype Par1 p = Par1 { unPar1 :: p } -- gives access to parameter p newtype Rec1 f p = Rec1 { unRec1 :: f p } -- a wrapper
В Par1 параметр p используется впервые, тогда как Rec1 просто оборачивает применение f к p.
Обратите внимание, что K1 (в виде Rec0) может всё ещё встречаться в представлении Rep1, а именно, когда поле типа данных не упоминает параметр.
Объявление
data WithInt a = WithInt Int a deriving Generic1
выводит
instance Generic1 WithInt where type Rep1 WithInt = D1 ('MetaData "WithInt" "Main" "package-name" 'False) (C1 ('MetaCons "WithInt" 'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
Если параметр a появляется под композицией других конструкторов типов, то представление также включает композицию:
data Rose a = Fork a [Rose a]
выводит
instance Generic1 Rose where type Rep1 Rose = D1 ('MetaData "Rose" "Main" "package-name" 'False) (C1 ('MetaCons "Fork" 'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 Rose)))
где
newtype (:.:) f g p = Comp1 { unComp1 :: f (g p) }
Представление типов k -> *
Класс Generic1 может быть обобщён для охвата типов вида k -> * для любого вида k. Для этого следует вывести экземпляр Generic1 с включённым расширением PolyKinds. Например, объявление
data Proxy (a :: k) = Proxy deriving Generic1
выводит немного другой экземпляр в зависимости от того, включено ли PolyKinds. Если компилировать без PolyKinds, то Rep1 Proxy :: * -> *, но если компилировать с PolyKinds, то Rep1 Proxy :: k -> *.
Представление неунифицированных типов
Если попытаться вывести экземпляр Generic для типа данных с неунифицированным аргументом (например, 'Int#'), можно ожидать появления 'Int#' аргумента, помеченного с Rec0 'Int#'. Однако это не сработает, так как 'Int#' имеет неунифицированный вид, а Rec0 ожидает тип вида *.
Одним из решений было бы представить вхождение 'Int#' как 'Rec0 Int'. Однако с этим подходом программист не знает, является ли Int фактически 'Int#' в замаскированном виде.
Вместо повторного использования Rec0, используется отдельное семейство данных URec для маркировки вхождений распространенных неподнятых типов:
data family URec a p data instance URec (Ptr ()) p = UAddr { 'uAddr#' :: 'Addr#' } data instance URec Char p = UChar { 'uChar#' :: 'Char#' } data instance URec Double p = UDouble { 'uDouble#' :: 'Double#' } data instance URec Int p = UFloat { 'uFloat#' :: 'Float#' } data instance URec Float p = UInt { 'uInt#' :: 'Int#' } data instance URec Word p = UWord { 'uWord#' :: 'Word#' }
Для удобства предоставляется несколько синонимов типов:
type UAddr = URec (Ptr ()) type UChar = URec Char type UDouble = URec Double type UFloat = URec Float type UInt = URec Int type UWord = URec Word
Декларация
data IntHash = IntHash Int# deriving Generic
дает
instance Generic IntHash where type Rep IntHash = D1 ('MetaData "IntHash" "Main" "package-name" 'False) (C1 ('MetaCons "IntHash" 'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UInt))
В настоящее время генерируется только шесть перечисленных выше неподнятых типов, но в будущем это может быть расширено, чтобы охватить больше неподнятых типов.
Типы универсального представления
Void: используется для типов данных без конструкторов
Экземпляры
| Generic1 (V1 :: k -> Type) Source | |
Определено в GHC.Internal.Generics | |
| Foldable1 (V1 :: Type -> Type) Source | Since: base-4.18.0.0 |
Определено в Data.Foldable1 Методыfold1 :: Semigroup m => V1 m -> m Source foldMap1 :: Semigroup m => (a -> m) -> V1 a -> m Source foldMap1' :: Semigroup m => (a -> m) -> V1 a -> m Source toNonEmpty :: V1 a -> NonEmpty a Source maximum :: Ord a => V1 a -> a Source minimum :: Ord a => V1 a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> V1 a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> V1 a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> V1 a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> V1 a -> b Source | |
| Eq1 (V1 :: Type -> Type) Source | Since: base-4.21.0.0 |
| Ord1 (V1 :: Type -> Type) Source | Since: base-4.21.0.0 |
Определено в Data.Functor.Classes | |
| Read1 (V1 :: Type -> Type) Source | Since: base-4.21.0.0 |
Определено в Data.Functor.Classes МетодыliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (V1 a) Исходный код liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [V1 a] Исходный код liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (V1 a) Исходный код liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [V1 a] Исходный код | |
| Show1 (V1 :: Type -> Type) Исходный код | С момента: base-4.21.0.0 |
Определено в Data.Functor.Classes МетодыliftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> V1 a -> ShowS Исходный код liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [V1 a] -> ShowS Исходный код | |
| Contravariant (V1 :: Type -> Type) Исходный код | |
Определено в Data.Functor.Contravariant | |
| Functor (V1 :: Type -> Type) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| Foldable (V1 :: Type -> Type) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Data.Foldable Методыfold :: Monoid m => V1 m -> m Исходный код foldMap :: Monoid m => (a -> m) -> V1 a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> V1 a -> m Исходный код foldr :: (a -> b -> b) -> b -> V1 a -> b Исходный код foldr' :: (a -> b -> b) -> b -> V1 a -> b Исходный код foldl :: (b -> a -> b) -> b -> V1 a -> b Исходный код foldl' :: (b -> a -> b) -> b -> V1 a -> b Исходный код foldr1 :: (a -> a -> a) -> V1 a -> a Исходный код foldl1 :: (a -> a -> a) -> V1 a -> a Исходный код toList :: V1 a -> [a] Исходный код null :: V1 a -> Bool Исходный код length :: V1 a -> Int Исходный код elem :: Eq a => a -> V1 a -> Bool Исходный код maximum :: Ord a => V1 a -> a Исходный код minimum :: Ord a => V1 a -> a Исходный код sum :: Num a => V1 a -> a Исходный код product :: Num a => V1 a -> a Исходный код | |
| Traversable (V1 :: Тип -> Тип) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Data.Traversable Методыtraverse :: Applicative f => (a -> f b) -> V1 a -> f (V1 b) Исходный код sequenceA :: Applicative f => V1 (f a) -> f (V1 a) Исходный код mapM :: Monad m => (a -> m b) -> V1 a -> m (V1 b) Исходный код sequence :: Monad m => V1 (m a) -> m (V1 a) Исходный код | |
| Полугруппа (V1 p) Исходный код | С момента: base-4.12.0.0 |
Определено в GHC.Internal.Generics Методы(<>) :: V1 p -> V1 p -> V1 p Исходный код sconcat :: Непустой список (V1 p) -> V1 p Исходный код stimes :: Целочисленный b => b -> V1 p -> V1 p Исходный код | |
| Данные p => Данные (V1 p) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> V1 p -> c (V1 p) Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (V1 p) Исходный код toConstr :: V1 p -> Constr Исходный код dataTypeOf :: V1 p -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (V1 p)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (V1 p)) Исходный код gmapT :: (forall b. Data b => b -> b) -> V1 p -> V1 p Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> V1 p -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> V1 p -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> V1 p -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> V1 p -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> V1 p -> m (V1 p) Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> V1 p -> m (V1 p) Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> V1 p -> m (V1 p) Исходный код | |
| Generic (V1 p) Исходный код | |
Определено в GHC.Internal.Generics | |
| Read (V1 p) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics МетодыreadsPrec :: Int -> ReadS (V1 p) Исходный код readList :: ReadS [V1 p] Исходный код readPrec :: ReadPrec (V1 p) Исходный код readListPrec :: ReadPrec [V1 p] Исходный код | |
Единица: используется для конструкторов без аргументов
Конструкторы
| U1 |
Экземпляры
| Generic1 (U1 :: k -> Type) Источник | |
Определено в GHC.Internal.Generics | |
| Eq1 (U1 :: Type -> Type) Источник | С версии: base-4.21.0.0 |
| Ord1 (U1 :: Type -> Type) Источник | С версии: base-4.21.0.0 |
Определено в Data.Functor.Classes | |
| Read1 (U1 :: Type -> Type) Источник | С версии: base-4.21.0.0 |
Определено в Data.Functor.Classes МетодыliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (U1 a) Источник liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [U1 a] Источник liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (U1 a) Источник liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [U1 a] Источник | |
| Show1 (U1 :: Type -> Type) Источник | С версии: base-4.21.0.0 |
| Contravariant (U1 :: Type -> Type) Источник | |
Определено в Data.Functor.Contravariant | |
| Alternative (U1 :: Тип -> Тип) Исходный код | С момента выпуска: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыempty :: U1 a Исходный код (<|>) :: U1 a -> U1 a -> U1 a Исходный код some :: U1 a -> U1 [a] Исходный код many :: U1 a -> U1 [a] Исходный код | |
| Applicative (U1 :: Тип -> Тип) Исходный код | С момента выпуска: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыpure :: a -> U1 a Исходный код (<*>) :: U1 (a -> b) -> U1 a -> U1 b Исходный код liftA2 :: (a -> b -> c) -> U1 a -> U1 b -> U1 c Исходный код (*>) :: U1 a -> U1 b -> U1 b Исходный код (<*) :: U1 a -> U1 b -> U1 a Исходный код | |
| Functor (U1 :: Тип -> Тип) Исходный код | С момента выпуска: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| Monad (U1 :: Тип -> Тип) Исходный код | С момента выпуска: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методы(>>=) :: U1 a -> (a -> U1 b) -> U1 b Исходный код (>>) :: U1 a -> U1 b -> U1 b Исходный код return :: a -> U1 a Исходный код | |
| MonadPlus (U1 :: Тип -> Тип) Исходный код | С момента выпуска: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| MonadZip (U1 :: Тип -> Тип) Исходный код | С момента выпуска: ghc-internal-4.9.0.0 |
| Foldable (U1 :: Type -> Type) Source | Since: base-4.9.0.0 |
Defined in GHC.Internal.Data.Foldable Краткое описание методовfold :: Monoid m => U1 m -> m Source foldMap :: Monoid m => (a -> m) -> U1 a -> m Source foldMap' :: Monoid m => (a -> m) -> U1 a -> m Source foldr :: (a -> b -> b) -> b -> U1 a -> b Source foldr' :: (a -> b -> b) -> b -> U1 a -> b Source foldl :: (b -> a -> b) -> b -> U1 a -> b Source foldl' :: (b -> a -> b) -> b -> U1 a -> b Source foldr1 :: (a -> a -> a) -> U1 a -> a Source foldl1 :: (a -> a -> a) -> U1 a -> a Source elem :: Eq a => a -> U1 a -> Bool Source maximum :: Ord a => U1 a -> a Source minimum :: Ord a => U1 a -> a Source | |
| Traversable (U1 :: Type -> Type) Source | Since: base-4.9.0.0 |
| Monoid (U1 p) Source | Since: base-4.12.0.0 |
| Semigroup (U1 p) Источник | Since: base-4.12.0.0 |
| Data p => Data (U1 p) Источник | Since: base-4.9.0.0 |
Определено в GHC.Internal.Data.Data Краткое описание методовgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> U1 p -> c (U1 p) Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (U1 p) Источник toConstr :: U1 p -> Constr Источник dataTypeOf :: U1 p -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (U1 p)) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (U1 p)) Источник gmapT :: (forall b. Data b => b -> b) -> U1 p -> U1 p Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> U1 p -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> U1 p -> r Источник gmapQ :: (forall d. Data d => d -> u) -> U1 p -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> U1 p -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> U1 p -> m (U1 p) Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> U1 p -> m (U1 p) Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> U1 p -> m (U1 p) Источник | |
| Generic (U1 p) Источник | |
Определено в GHC.Internal.Generics | |
| Read (U1 p) Источник | С тех пор: base-4.9.0.0 |
| Show (U1 p) Источник | С тех пор: base-4.9.0.0 |
| Eq (U1 p) Источник | С тех пор: base-4.9.0.0 |
| Ord (U1 p) Источник | С тех пор: base-4.7.0.0 |
Определено в GHC.Internal.Generics | |
Используется для маркировки вхождений параметра
Экземпляры
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Monoid p => Monoid (Par1 p) Исходный код | С момента: base-4.12.0.0 |
||||
Определено в GHC.Internal.Generics Методыmempty :: Par1 p Исходный код mappend :: Par1 p -> Par1 p -> Par1 p Исходный код mconcat :: [Par1 p] -> Par1 p Исходный код | |||||
| 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 Исходный код | |||||
| Data p => Data (Par1 p) Исходный код | С момента: base-4.9.0.0 |
||||
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Par1 p -> c (Par1 p) Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Par1 p) Исходный код toConstr :: Par1 p -> Constr Исходный код dataTypeOf :: Par1 p -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Par1 p)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Par1 p)) Исходный код gmapT :: (forall b. Data b => b -> b) -> Par1 p -> Par1 p Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Par1 p -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Par1 p -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Par1 p -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Par1 p -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Par1 p -> m (Par1 p) Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Par1 p -> m (Par1 p) Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Par1 p -> m (Par1 p) Исходный код | |||||
| Generic (Par1 p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Read p => Read (Par1 p) Исходный код | С момента: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics |
newtype Rec1 (f :: k -> Type) (p :: k) Source
Рекурсивные вызовы типа * -> * (или типа k -> *, когда PolyKinds включен)
Экземпляры
| Generic1 (Rec1 f :: k -> Type) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Foldable1 f => Foldable1 (Rec1 f) Источник | С версии: base-4.18.0.0 |
||||
Определено в Data.Foldable1 Методыfold1 :: Semigroup m => Rec1 f m -> m Источник foldMap1 :: Semigroup m => (a -> m) -> Rec1 f a -> m Источник foldMap1' :: Semigroup m => (a -> m) -> Rec1 f a -> m Источник toNonEmpty :: Rec1 f a -> NonEmpty a Источник maximum :: Ord a => Rec1 f a -> a Источник minimum :: Ord a => Rec1 f a -> a Источник head :: Rec1 f a -> a Источник last :: Rec1 f a -> a Источник foldrMap1 :: (a -> b) -> (a -> b -> b) -> Rec1 f a -> b Источник foldlMap1' :: (a -> b) -> (b -> a -> b) -> Rec1 f a -> b Источник foldlMap1 :: (a -> b) -> (b -> a -> b) -> Rec1 f a -> b Источник foldrMap1' :: (a -> b) -> (a -> b -> b) -> Rec1 f a -> b Источник | |||||
| Eq1 f => Eq1 (Rec1 f) Источник | С версии: base-4.21.0.0 |
||||
| Ord1 f => Ord1 (Rec1 f) Источник | С версии: base-4.21.0.0 |
||||
Определено в Data.Functor.Classes | |||||
| Read1 f => Read1 (Rec1 f) Источник | С версии: base-4.21.0.0 |
||||
Определено в GHC.Internal.Generics Методыfmap :: (a -> b) -> Rec1 f a -> Rec1 f b Исходный код (<$) :: a -> Rec1 f b -> Rec1 f a Исходный код | |
| Monad f => Monad (Rec1 f) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методы(>>=) :: Rec1 f a -> (a -> Rec1 f b) -> Rec1 f b Исходный код (>>) :: Rec1 f a -> Rec1 f b -> Rec1 f b Исходный код return :: a -> Rec1 f a Исходный код | |
| MonadPlus f => MonadPlus (Rec1 f) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| MonadFix f => MonadFix (Rec1 f) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Control.Monad.Fix Методыmfix :: (a -> Rec1 f a) -> Rec1 f a Исходный код | |
| MonadZip f => MonadZip (Rec1 f) Исходный код | С момента: ghc-internal-4.9.0.0 |
Определено в GHC.Internal.Control.Monad.Zip Методыmzip :: Rec1 f a -> Rec1 f b -> Rec1 f (a, b) Исходный код mzipWith :: (a -> b -> c) -> Rec1 f a -> Rec1 f b -> Rec1 f c Исходный код munzip :: Rec1 f (a, b) -> (Rec1 f a, Rec1 f b) Исходный код | |
| Foldable f => Foldable (Rec1 f) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Data.Foldable Методыfold :: Monoid m => Rec1 f m -> m Исходный код foldMap :: Monoid m => (a -> m) -> Rec1 f a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> Rec1 f a -> m Исходный код foldr :: (a -> b -> b) -> b -> Rec1 f a -> b Исходный код foldr' :: (a -> b -> b) -> b -> Rec1 f a -> b Исходный код foldl :: (b -> a -> b) -> b -> Rec1 f a -> b Исходный код foldl' :: (b -> a -> b) -> b -> Rec1 f a -> b Исходный код foldr1 :: (a -> a -> a) -> Rec1 f a -> a Исходный код foldl1 :: (a -> a -> a) -> Rec1 f a -> a Исходный код toList :: Rec1 f a -> [a] Исходный код null :: Rec1 f a -> Bool Исходный код length :: Rec1 f a -> Int Исходный код elem :: Eq a => a -> Rec1 f a -> Bool Исходный код maximum :: Ord a => Rec1 f a -> a Исходный код minimum :: Ord a => Rec1 f a -> a Исходный код sum :: Num a => Rec1 f a -> a Исходный код product :: Num a => Rec1 f a -> a Исходный код | |
| Traversable f => Traversable (Rec1 f) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Data.Traversable Методыtraverse :: Applicative f0 => (a -> f0 b) -> Rec1 f a -> f0 (Rec1 f b) Исходный код sequenceA :: Applicative f0 => Rec1 f (f0 a) -> f0 (Rec1 f a) Исходный код mapM :: Monad m => (a -> m b) -> Rec1 f a -> m (Rec1 f b) Исходный код sequence :: Monad m => Rec1 f (m a) -> m (Rec1 f a) Исходный код | |
| Monoid (f p) => Monoid (Rec1 f p) Исходный код | С момента: base-4.12.0.0 |
Определено в GHC.Internal.Generics Методыmempty :: Rec1 f p Исходный код mappend :: Rec1 f p -> Rec1 f p -> Rec1 f p Исходный код mconcat :: [Rec1 f p] -> Rec1 f p Исходный код | |
| 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 Исходный код | |
| (Data (f p), Typeable f, Data p) => Data (Rec1 f p) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Rec1 f p -> c (Rec1 f p) Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Rec1 f p) Исходный код toConstr :: Rec1 f p -> Constr Исходный код dataTypeOf :: Rec1 f p -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Rec1 f p)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Rec1 f p)) Исходный код gmapT :: (forall b. Data b => b -> b) -> Rec1 f p -> Rec1 f p Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Rec1 f p -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Rec1 f p -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Rec1 f p -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Rec1 f p -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Rec1 f p -> m (Rec1 f p) Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Rec1 f p -> m (Rec1 f p) Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Rec1 f p -> m (Rec1 f p) Исходный код | |
| Generic (Rec1 f p) Исходный код | |
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Read (f p) => Read (Rec1 f p) Источник | С момента: base-4.7.0.0 |
||||
| Show (f p) => Show (Rec1 f p) Источник | С момента: base-4.7.0.0 |
||||
| Eq (f p) => Eq (Rec1 f p) Источник | С момента: base-4.7.0.0 |
||||
| Ord (f p) => Ord (Rec1 f p) Источник | С момента: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics | |
| type Rep1 (Rec1 f :: k -> Тип) Источник | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| type Rep (Rec1 f p) Источник | С момента: base-4.7.0.0 |
Определено в GHC.Internal.Generics | |
newtype K1 i c (p :: k) Источник
Константы, дополнительные параметры и рекурсия типа *
Экземпляры
| Generic1 (K1 i c :: k -> Type) Source | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Bifoldable (K1 i :: Type -> Type -> Type) Source | Since: base-4.10.0.0 |
||||
| Bifunctor (K1 i :: Type -> Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Bitraversable (K1 i :: Type -> Type -> Type) Source | Since: base-4.10.0.0 |
||||
Определено в Data.Bitraversable Методыbitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> K1 i a b -> f (K1 i c d) Source | |||||
| Eq c => Eq1 (K1 i c :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Ord c => Ord1 (K1 i c :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Определено в Data.Functor.Classes | |||||
| Read c => Read1 (K1 i c :: Type -> Type) Source | Since: base-4.21.0.0 |
Определено в Data.Functor.Classes МетодыliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (K1 i c a) Source liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [K1 i c a] Source liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (K1 i c a) Source liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [K1 i c a] Source | |
| Show c => Show1 (K1 i c :: Type -> Type) Source | Since: base-4.21.0.0 |
| Contravariant (K1 i c :: Type -> Type) Source | |
| Monoid c => Applicative (K1 i c :: Type -> Type) Source | Since: base-4.12.0.0 |
| Functor (K1 i c :: Type -> Type) Source | Since: base-4.9.0.0 |
| Foldable (K1 i c :: Type -> Type) Source | Since: base-4.9.0.0 |
Определено в GHC.Internal.Data.Foldable Методыfold :: Monoid m => K1 i c m -> m Исходный код foldMap :: Monoid m => (a -> m) -> K1 i c a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> K1 i c a -> m Исходный код foldr :: (a -> b -> b) -> b -> K1 i c a -> b Исходный код foldr' :: (a -> b -> b) -> b -> K1 i c a -> b Исходный код foldl :: (b -> a -> b) -> b -> K1 i c a -> b Исходный код foldl' :: (b -> a -> b) -> b -> K1 i c a -> b Исходный код foldr1 :: (a -> a -> a) -> K1 i c a -> a Исходный код foldl1 :: (a -> a -> a) -> K1 i c a -> a Исходный код toList :: K1 i c a -> [a] Исходный код null :: K1 i c a -> Boolean Исходный код length :: K1 i c a -> Число Исходный код elem :: Eq a => a -> K1 i c a -> Boolean Исходный код maximum :: Ord a => K1 i c a -> a Исходный код minimum :: Ord a => K1 i c a -> a Исходный код sum :: Num a => K1 i c a -> a Исходный код product :: Num a => K1 i c a -> a Исходный код | |
| Traversable (K1 i c :: Тип -> Тип) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Data.Traversable Методыtraverse :: Applicative f => (a -> f b) -> K1 i c a -> f (K1 i c b) Исходный код sequenceA :: Applicative f => K1 i c (f a) -> f (K1 i c a) Исходный код mapM :: Monad m => (a -> m b) -> K1 i c a -> m (K1 i c b) Исходный код sequence :: Monad m => K1 i c (m a) -> m (K1 i c a) Исходный код | |
| Monoid c => Monoid (K1 i c p) Исходный код | С момента: base-4.12.0.0 |
Определено в GHC.Internal.Generics Методыmempty :: K1 i c p Исходный код mappend :: K1 i c p -> K1 i c p -> K1 i c p Исходный код mconcat :: [K1 i c p] -> K1 i c 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 Исходный код | |
| (Typeable i, Data p, Data c) => Data (K1 i c p) Исходный код | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Data.Data Краткое описание методовgfoldl :: (forall d b. Data d => c0 (d -> b) -> d -> c0 b) -> (forall g. g -> c0 g) -> K1 i c p -> c0 (K1 i c p) Исходный код gunfold :: (forall b r. Data b => c0 (b -> r) -> c0 r) -> (forall r. r -> c0 r) -> Constr -> c0 (K1 i c p) Исходный код toConstr :: K1 i c p -> Constr Исходный код dataTypeOf :: K1 i c p -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c0 (t d)) -> Maybe (c0 (K1 i c p)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c0 (t d e)) -> Maybe (c0 (K1 i c p)) Исходный код gmapT :: (forall b. Data b => b -> b) -> K1 i c p -> K1 i c p Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> K1 i c p -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> K1 i c p -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> K1 i c p -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> K1 i c p -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> K1 i c p -> m (K1 i c p) Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> K1 i c p -> m (K1 i c p) Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> K1 i c p -> m (K1 i c p) Исходный код | |
| Generic (K1 i c p) Исходный код | |
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: K1 i c p -> Rep (K1 i c p) x Исходный код to :: Rep (K1 i c p) x -> K1 i c p Исходный код | |||||
| Read c => Read (K1 i c p) Исходный код | С момента: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics МетодыreadsPrec :: Int -> ReadS (K1 i c p) Исходный код readList :: ReadS [K1 i c p] Исходный код readPrec :: ReadPrec (K1 i c p) Исходный код readListPrec :: ReadPrec [K1 i c p] Исходный код | |||||
| Show c => Show (K1 i c p) Исходный код | С момента: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics МетодыshowsPrec :: Int -> K1 i c p -> ShowS Исходный код show :: K1 i c p -> String Исходный код showList :: [K1 i c p] -> ShowS Исходный код | |||||
| Eq c => Eq (K1 i c p) Исходный код | С момента: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics Методы(==) :: K1 i c p -> K1 i c p -> Bool Исходный код (/=) :: K1 i c p -> K1 i c p -> Bool Исходный код | |||||
| Ord c => Ord (K1 i c p) Исходный код | С момента: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics Методыcompare :: K1 i c p -> K1 i c p -> Ordering Исходный код (<) :: K1 i c p -> K1 i c p -> Bool Исходный код (<=) :: K1 i c p -> K1 i c p -> Bool Исходный код (>) :: K1 i c p -> K1 i c p -> Bool Исходный код (>=) :: K1 i c p -> K1 i c p -> Bool Исходный код max :: K1 i c p -> K1 i c p -> K1 i c p Исходный код min :: K1 i c p -> K1 i c p -> K1 i c p Исходный код | |
| type Rep1 (K1 i c :: k -> Type) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| type Rep (K1 i c p) Исходный код | С момента: base-4.7.0.0 |
Определено в GHC.Internal.Generics | |
newtype M1 i (c :: Meta) (f :: k -> Type) (p :: k) Исходный код
Метаинформация (имена конструкторов и т. д.)
Экземпляры
| Generic1 (M1 i c f :: k -> Type) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Foldable1 f => Foldable1 (M1 i c f) Источник | С версии: base-4.18.0.0 |
||||
Определено в Data.Foldable1 Методыfold1 :: Semigroup m => M1 i c f m -> m Источник foldMap1 :: Semigroup m => (a -> m) -> M1 i c f a -> m Источник foldMap1' :: Semigroup m => (a -> m) -> M1 i c f a -> m Источник toNonEmpty :: M1 i c f a -> NonEmpty a Источник maximum :: Ord a => M1 i c f a -> a Источник minimum :: Ord a => M1 i c f a -> a Источник head :: M1 i c f a -> a Источник last :: M1 i c f a -> a Источник foldrMap1 :: (a -> b) -> (a -> b -> b) -> M1 i c f a -> b Источник foldlMap1' :: (a -> b) -> (b -> a -> b) -> M1 i c f a -> b Источник foldlMap1 :: (a -> b) -> (b -> a -> b) -> M1 i c f a -> b Источник foldrMap1' :: (a -> b) -> (a -> b -> b) -> M1 i c f a -> b Источник | |||||
| Eq1 f => Eq1 (M1 i c f) Источник | С версии: base-4.21.0.0 |
||||
| Ord1 f => Ord1 (M1 i c f) Источник | С версии: base-4.21.0.0 |
||||
Определено в Data.Functor.Classes | |||||
| Read1 f => Read1 (M1 i c f) Источник | С версии: base-4.21.0.0 |
||||
Определено в Data.Functor.Classes МетодыliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (M1 i c f a) Исходный код liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [M1 i c f a] Исходный код liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (M1 i c f a) Исходный код liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [M1 i c f a] Исходный код | |
| Show1 f => Show1 (M1 i c f) Исходный код | С момента: base-4.21.0.0 |
Определено в Data.Functor.Classes МетодыliftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> M1 i c f a -> ShowS Исходный код liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [M1 i c f a] -> ShowS Исходный код | |
| Contravariant f => Contravariant (M1 i c f) Исходный код | |
Определено в Data.Functor.Contravariant Методыcontramap :: (a' -> a) -> M1 i c f a -> M1 i c f a' Исходный код (>$) :: b -> M1 i c f b -> M1 i c f a Исходный код | |
| Alternative f => Alternative (M1 i c f) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыempty :: M1 i c f a Исходный код (<|>) :: M1 i c f a -> M1 i c f a -> M1 i c f a Исходный код some :: M1 i c f a -> M1 i c f [a] Исходный код many :: M1 i c f a -> M1 i c f [a] Исходный код | |
| Applicative f => Applicative (M1 i c f) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыpure :: a -> M1 i c f a Исходный код (<*>) :: M1 i c f (a -> b) -> M1 i c f a -> M1 i c f b Исходный код liftA2 :: (a -> b -> c0) -> M1 i c f a -> M1 i c f b -> M1 i c f c0 Исходный код (*>) :: M1 i c f a -> M1 i c f b -> M1 i c f b Исходный код (<*) :: M1 i c f a -> M1 i c f b -> M1 i c f a Исходный код | |
| Functor f => Functor (M1 i c f) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыfmap :: (a -> b) -> M1 i c f a -> M1 i c f b Исходный код (<$) :: a -> M1 i c f b -> M1 i c f a Исходный код | |
| Monad f => Monad (M1 i c f) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методы(>>=) :: M1 i c f a -> (a -> M1 i c f b) -> M1 i c f b Исходный код (>>) :: M1 i c f a -> M1 i c f b -> M1 i c f b Исходный код return :: a -> M1 i c f a Исходный код | |
| MonadPlus f => MonadPlus (M1 i c f) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыmzero :: M1 i c f a Исходный код mplus :: M1 i c f a -> M1 i c f a -> M1 i c f a Исходный код | |
| MonadFix f => MonadFix (M1 i c f) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Control.Monad.Fix Методыmfix :: (a -> M1 i c f a) -> M1 i c f a Исходный код | |
| MonadZip f => MonadZip (M1 i c f) Исходный код | С момента: ghc-internal-4.9.0.0 |
Определено в GHC.Internal.Control.Monad.Zip Методыmzip :: M1 i c f a -> M1 i c f b -> M1 i c f (a, b) Исходный код mzipWith :: (a -> b -> c0) -> M1 i c f a -> M1 i c f b -> M1 i c f c0 Исходный код munzip :: M1 i c f (a, b) -> (M1 i c f a, M1 i c f b) Исходный код | |
| Foldable f => Foldable (M1 i c f) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Data.Foldable Методыfold :: Monoid m => M1 i c f m -> m Исходный код foldMap :: Monoid m => (a -> m) -> M1 i c f a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> M1 i c f a -> m Исходный код foldr :: (a -> b -> b) -> b -> M1 i c f a -> b Исходный код foldr' :: (a -> b -> b) -> b -> M1 i c f a -> b Исходный код foldl :: (b -> a -> b) -> b -> M1 i c f a -> b Исходный код foldl' :: (b -> a -> b) -> b -> M1 i c f a -> b Исходный код foldr1 :: (a -> a -> a) -> M1 i c f a -> a Исходный код foldl1 :: (a -> a -> a) -> M1 i c f a -> a Исходный код toList :: M1 i c f a -> [a] Исходный код null :: M1 i c f a -> Bool Исходный код length :: M1 i c f a -> Int Исходный код elem :: Eq a => a -> M1 i c f a -> Bool Исходный код maximum :: Ord a => M1 i c f a -> a Исходный код minimum :: Ord a => M1 i c f a -> a Исходный код sum :: Num a => M1 i c f a -> a Исходный код product :: Num a => M1 i c f a -> a Исходный код | |
| Traversable f => Traversable (M1 i c f) Исходный код | С: base-4.9.0.0 |
Определено в GHC.Internal.Data.Traversable Методыtraverse :: Applicative f0 => (a -> f0 b) -> M1 i c f a -> f0 (M1 i c f b) Исходный код sequenceA :: Applicative f0 => M1 i c f (f0 a) -> f0 (M1 i c f a) Исходный код mapM :: Monad m => (a -> m b) -> M1 i c f a -> m (M1 i c f b) Исходный код sequence :: Monad m => M1 i c f (m a) -> m (M1 i c f a) Исходный код | |
| Monoid (f p) => Monoid (M1 i c f p) Исходный код | С: base-4.12.0.0 |
Определено в GHC.Internal.Generics Методыmempty :: M1 i c f p Исходный код mappend :: M1 i c f p -> M1 i c f p -> M1 i c f p Исходный код mconcat :: [M1 i c f p] -> M1 i c f 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 Исходный код | |
| (Data p, Data (f p), Typeable c, Typeable i, Typeable f) => Data (M1 i c f p) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c0 (d -> b) -> d -> c0 b) -> (forall g. g -> c0 g) -> M1 i c f p -> c0 (M1 i c f p) Исходный код gunfold :: (forall b r. Data b => c0 (b -> r) -> c0 r) -> (forall r. r -> c0 r) -> Constr -> c0 (M1 i c f p) Исходный код toConstr :: M1 i c f p -> Constr Исходный код dataTypeOf :: M1 i c f p -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c0 (t d)) -> Может (c0 (M1 i c f p)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c0 (t d e)) -> Может (c0 (M1 i c f p)) Исходный код gmapT :: (forall b. Data b => b -> b) -> M1 i c f p -> M1 i c f p Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> M1 i c f p -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> M1 i c f p -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> M1 i c f p -> [u] Исходный код gmapQi :: Целое -> (forall d. Data d => d -> u) -> M1 i c f p -> u Исходный код gmapM :: Моноид m => (forall d. Data d => d -> m d) -> M1 i c f p -> m (M1 i c f p) Исходный код gmapMp :: Моноид с объединением m => (forall d. Data d => d -> m d) -> M1 i c f p -> m (M1 i c f p) Исходный код gmapMo :: Моноид с объединением m => (forall d. Data d => d -> m d) -> M1 i c f p -> m (M1 i c f p) Исходный код | |
| Обобщённый (M1 i c f p) Исходный код | |
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Read (f p) => Read (M1 i c f p) Источник | С момента: base-4.7.0.0 |
||||
| Show (f p) => Show (M1 i c f p) Источник | С момента: base-4.7.0.0 |
||||
| Eq (f p) => Eq (M1 i c f p) Источник | С момента: base-4.7.0.0 |
||||
| Ord (f p) => Ord (M1 i c f p) Источник | С момента: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics Методыcompare :: M1 i c f p -> M1 i c f p -> Ordering Исходный код (<) :: M1 i c f p -> M1 i c f p -> Bool Исходный код (<=) :: M1 i c f p -> M1 i c f p -> Bool Исходный код (>) :: M1 i c f p -> M1 i c f p -> Bool Исходный код (>=) :: M1 i c f p -> M1 i c f p -> Bool Исходный код max :: M1 i c f p -> M1 i c f p -> M1 i c f p Исходный код min :: M1 i c f p -> M1 i c f p -> M1 i c f p Исходный код | |
| type Rep1 (M1 i c f :: k -> Type) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| type Rep (M1 i c f p) Исходный код | С момента: base-4.7.0.0 |
Определено в GHC.Internal.Generics | |
data ((f :: k -> Type) :+: (g :: k -> Type)) (p :: k) infixr 5 Исходный код
Суммы: кодирование выбора между конструкторами
Примеры
| Generic1 (f :+: g :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: forall (a :: k). (f :+: g) a -> Rep1 (f :+: g) a Исходный код to1 :: forall (a :: k). Rep1 (f :+: g) a -> (f :+: g) a Исходный код | |||||
| (Foldable1 f, Foldable1 g) => Foldable1 (f :+: g) Исходный код | С версии: base-4.18.0.0 |
||||
Определено в Data.Foldable1 Методыfold1 :: Semigroup m => (f :+: g) m -> m Исходный код foldMap1 :: Semigroup m => (a -> m) -> (f :+: g) a -> m Исходный код foldMap1' :: Semigroup m => (a -> m) -> (f :+: g) a -> m Исходный код toNonEmpty :: (f :+: g) a -> NonEmpty a Исходный код maximum :: Ord a => (f :+: g) a -> a Исходный код minimum :: Ord a => (f :+: g) a -> a Исходный код head :: (f :+: g) a -> a Исходный код last :: (f :+: g) a -> a Исходный код | |||||
Определено в GHC.Internal.Data.Foldable Методыfold :: Monoid m => (f :+: g) m -> m Исходный код foldMap :: Monoid m => (a -> m) -> (f :+: g) a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> (f :+: g) a -> m Исходный код foldr :: (a -> b -> b) -> b -> (f :+: g) a -> b Исходный код foldr' :: (a -> b -> b) -> b -> (f :+: g) a -> b Исходный код foldl :: (b -> a -> b) -> b -> (f :+: g) a -> b Исходный код foldl' :: (b -> a -> b) -> b -> (f :+: g) a -> b Исходный код foldr1 :: (a -> a -> a) -> (f :+: g) a -> a Исходный код foldl1 :: (a -> a -> a) -> (f :+: g) a -> a Исходный код toList :: (f :+: g) a -> [a] Исходный код null :: (f :+: g) a -> Bool Исходный код length :: (f :+: g) a -> Int Исходный код elem :: Eq a => a -> (f :+: g) a -> Bool Исходный код maximum :: Ord a => (f :+: g) a -> a Исходный код minimum :: Ord a => (f :+: g) a -> a Исходный код sum :: Num a => (f :+: g) a -> a Исходный код product :: Num a => (f :+: g) a -> a Исходный код | |
| (Traversable f, Traversable g) => Traversable (f :+: g) Исходный код | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Data.Traversable Методыtraverse :: Applicative f0 => (a -> f0 b) -> (f :+: g) a -> f0 ((f :+: g) b) Исходный код sequenceA :: Applicative f0 => (f :+: g) (f0 a) -> f0 ((f :+: g) a) Исходный код mapM :: Monad m => (a -> m b) -> (f :+: g) a -> m ((f :+: g) b) Исходный код sequence :: Monad m => (f :+: g) (m a) -> m ((f :+: g) a) Исходный код | |
| (Typeable f, Typeable g, Data p, Data (f p), Data (g p)) => Data ((f :+: g) p) Исходный код | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g0. g0 -> c g0) -> (f :+: g) p -> c ((f :+: g) p) Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ((f :+: g) p) Исходный код toConstr :: (f :+: g) p -> Constr Исходный код dataTypeOf :: (f :+: g) p -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ((f :+: g) p)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ((f :+: g) p)) Исходный код gmapT :: (forall b. Data b => b -> b) -> (f :+: g) p -> (f :+: g) p Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> (f :+: g) p -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> (f :+: g) p -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> (f :+: g) p -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> (f :+: g) p -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> (f :+: g) p -> m ((f :+: g) p) Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :+: g) p -> m ((f :+: g) p) Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :+: g) p -> m ((f :+: g) p) Исходный код | |||||
| Generic ((f :+: g) p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (f :+: g) p -> Rep ((f :+: g) p) x Исходный код to :: Rep ((f :+: g) p) x -> (f :+: g) p Исходный код | |||||
| (Read (f p), Read (g p)) => Read ((f :+: g) p) Исходный код | С: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics МетодыreadsPrec :: Int -> ReadS ((f :+: g) p) Исходный код readList :: ReadS [(f :+: g) p] Исходный код readPrec :: ReadPrec ((f :+: g) p) Исходный код readListPrec :: ReadPrec [(f :+: g) p] Исходный код | |
| (Show (f p), Show (g p)) => Show ((f :+: g) p) Исходный код | С версии: base-4.7.0.0 |
Определено в GHC.Internal.Generics МетодыshowsPrec :: Int -> (f :+: g) p -> ShowS Исходный код show :: (f :+: g) p -> String Исходный код showList :: [(f :+: g) p] -> ShowS Исходный код | |
| (Eq (f p), Eq (g p)) => Eq ((f :+: g) p) Исходный код | С версии: base-4.7.0.0 |
Определено в GHC.Internal.Generics Методы(==) :: (f :+: g) p -> (f :+: g) p -> Bool Исходный код (/=) :: (f :+: g) p -> (f :+: g) p -> Bool Исходный код | |
| (Ord (f p), Ord (g p)) => Ord ((f :+: g) p) Исходный код | С версии: base-4.7.0.0 |
Определено в GHC.Internal.Generics Методыcompare :: (f :+: g) p -> (f :+: g) p -> Ordering Исходный код (<) :: (f :+: g) p -> (f :+: g) p -> Bool Исходный код (<=) :: (f :+: g) p -> (f :+: g) p -> Bool Исходный код (>) :: (f :+: g) p -> (f :+: g) p -> Bool Исходный код (>=) :: (f :+: g) p -> (f :+: g) p -> Bool Исходный код max :: (f :+: g) p -> (f :+: g) p -> (f :+: g) p Исходный код min :: (f :+: g) p -> (f :+: g) p -> (f :+: g) p Исходный код | |
| type Rep1 (f :+: g :: k -> Тип) Исходный код | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Generics тип Rep1 (f :+: g :: k -> Тип) = D1 ('MetaData ":+:" "GHC.Internal.Generics" "ghc-internal" 'Ложь) (C1 ('MetaCons "L1" 'PrefixI 'Ложь) (S1 ('MetaSel ('Ничего :: МожетБыть Символ) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)) :+: C1 ('MetaCons "R1" 'PrefixI 'Ложь) (S1 ('MetaSel ('Ничего :: МожетБыть Символ) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 g))) | |
| тип Rep ((f :+: g) p) Исходный код | С момента: base-4.7.0.0 |
Определено в GHC.Internal.Generics тип Rep ((f :+: g) p) = D1 ('MetaData ":+:" "GHC.Internal.Generics" "ghc-internal" 'Ложь) (C1 ('MetaCons "L1" 'PrefixI 'Ложь) (S1 ('MetaSel ('Ничего :: МожетБыть Символ) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f p))) :+: C1 ('MetaCons "R1" 'PrefixI 'Ложь) (S1 ('MetaSel ('Ничего :: МожетБыть Символ) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (g p)))) | |
данные ((f :: k -> Тип) :*: (g :: k -> Тип)) (p :: k) infixr 6 Исходный код
Продукты: кодирование нескольких аргументов конструкторов
Конструкторы
| (f p) :*: (g p) infixr 6 |
Вхождения
| Generic1 (f :*: g :: k -> Type) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| (Foldable1 f, Foldable1 g) => Foldable1 (f :*: g) Источник | С версии: base-4.18.0.0 |
||||
Определено в Data.Foldable1 Методыfold1 :: Semigroup m => (f :*: g) m -> m Источник foldMap1 :: Semigroup m => (a -> m) -> (f :*: g) a -> m Источник foldMap1' :: Semigroup m => (a -> m) -> (f :*: g) a -> m Источник toNonEmpty :: (f :*: g) a -> NonEmpty a Источник maximum :: Ord a => (f :*: g) a -> a Источник minimum :: Ord a => (f :*: g) a -> a Источник head :: (f :*: g) a -> a Источник last :: (f :*: g) a -> a Источник foldrMap1 :: (a -> b) -> (a -> b -> b) -> (f :*: g) a -> b Источник foldlMap1' :: (a -> b) -> (b -> a -> b) -> (f :*: g) a -> b Источник foldlMap1 :: (a -> b) -> (b -> a -> b) -> (f :*: g) a -> b Источник foldrMap1' :: (a -> b) -> (a -> b -> b) -> (f :*: g) a -> b Источник | |||||
| (Eq1 f, Eq1 g) => Eq1 (f :*: g) Источник | С версии: base-4.21.0.0 |
||||
| (Ord1 f, Ord1 g) => Ord1 (f :*: g) Источник | С версии: base-4.21.0.0 |
||||
| (Functor f, Functor g) => Functor (f :*: g) Источник | С момента: base-4.9.0.0 |
| (Монад f, Монад g) => Монад (f :*: g) Источник | С момента: base-4.9.0.0 |
| (МонадПлюс f, МонадПлюс g) => МонадПлюс (f :*: g) Источник | С момента: base-4.9.0.0 |
| (МонадФикс f, МонадФикс g) => МонадФикс (f :*: g) Источник | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Control.Monad.Fix | |
| (МонадЗип f, МонадЗип g) => МонадЗип (f :*: g) Источник | С момента: ghc-internal-4.9.0.0 |
| (Foldable f, Foldable g) => Foldable (f :*: g) Source | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Data.Foldable Методыfold :: Monoid m => (f :*: g) m -> m Source foldMap :: Monoid m => (a -> m) -> (f :*: g) a -> m Source foldMap' :: Monoid m => (a -> m) -> (f :*: g) a -> m Source foldr :: (a -> b -> b) -> b -> (f :*: g) a -> b Source foldr' :: (a -> b -> b) -> b -> (f :*: g) a -> b Source foldl :: (b -> a -> b) -> b -> (f :*: g) a -> b Source foldl' :: (b -> a -> b) -> b -> (f :*: g) a -> b Source foldr1 :: (a -> a -> a) -> (f :*: g) a -> a Source foldl1 :: (a -> a -> a) -> (f :*: g) a -> a Source toList :: (f :*: g) a -> [a] Source null :: (f :*: g) a -> Bool Source length :: (f :*: g) a -> Int Source elem :: Eq a => a -> (f :*: g) a -> Bool Source maximum :: Ord a => (f :*: g) a -> a Source minimum :: Ord a => (f :*: g) a -> a Source | |
| (Traversable f, Traversable g) => Traversable (f :*: g) Source | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Data.Traversable Методыtraverse :: Applicative f0 => (a -> f0 b) -> (f :*: g) a -> f0 ((f :*: g) b) Source sequenceA :: Applicative f0 => (f :*: g) (f0 a) -> f0 ((f :*: g) a) Source mapM :: Monad m => (a -> m b) -> (f :*: g) a -> m ((f :*: g) b) Source sequence :: Monad m => (f :*: g) (m a) -> m ((f :*: g) a) Source | |
| (Monoid (f p), Monoid (g p)) => Monoid ((f :*: g) p) Source | С момента: base-4.12.0.0 |
| (Semigroup (f p), Semigroup (g p)) => Semigroup ((f :*: g) p) Source | Since: base-4.12.0.0 |
| (Typeable f, Typeable g, Data p, Data (f p), Data (g p)) => Data ((f :*: g) p) Source | Since: base-4.9.0.0 |
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g0. g0 -> c g0) -> (f :*: g) p -> c ((f :*: g) p) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ((f :*: g) p) Source toConstr :: (f :*: g) p -> Constr Source dataTypeOf :: (f :*: g) p -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ((f :*: g) p)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ((f :*: g) p)) Source gmapT :: (forall b. Data b => b -> b) -> (f :*: g) p -> (f :*: g) p Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> (f :*: g) p -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> (f :*: g) p -> r Source gmapQ :: (forall d. Data d => d -> u) -> (f :*: g) p -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> (f :*: g) p -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> (f :*: g) p -> m ((f :*: g) p) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :*: g) p -> m ((f :*: g) p) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :*: g) p -> m ((f :*: g) p) Source | |
| Generic ((f :*: g) p) Source | |
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (f :*: g) p -> Rep ((f :*: g) p) x Исходный код to :: Rep ((f :*: g) p) x -> (f :*: g) p Исходный код | |||||
| (Read (f p), Read (g p)) => Read ((f :*: g) p) Исходный код | С момента: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics МетодыreadsPrec :: Int -> ReadS ((f :*: g) p) Исходный код readList :: ReadS [(f :*: g) p] Исходный код readPrec :: ReadPrec ((f :*: g) p) Исходный код readListPrec :: ReadPrec [(f :*: g) p] Исходный код | |||||
| (Show (f p), Show (g p)) => Show ((f :*: g) p) Исходный код | С момента: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics МетодыshowsPrec :: Int -> (f :*: g) p -> ShowS Исходный код show :: (f :*: g) p -> String Исходный код showList :: [(f :*: g) p] -> ShowS Исходный код | |||||
| (Eq (f p), Eq (g p)) => Eq ((f :*: g) p) Исходный код | С момента: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics Методы(==) :: (f :*: g) p -> (f :*: g) p -> Bool Исходный код (/=) :: (f :*: g) p -> (f :*: g) p -> Bool Исходный код | |||||
| (Ord (f p), Ord (g p)) => Ord ((f :*: g) p) Исходный код | С момента: base-4.7.0.0 |
||||
newtype ((f :: k2 -> Тип) :.: (g :: k1 -> k2)) (p :: k1) infixr 7 Исходный код
Составление функторов
Экземпляры
| Functor f => Generic1 (f :.: g :: k -> Type) Source | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| (Foldable1 f, Foldable1 g) => Foldable1 (f :.: g) Source | С версии: base-4.18.0.0 |
||||
Определено в Data.Foldable1 Методыfold1 :: Semigroup m => (f :.: g) m -> m Source foldMap1 :: Semigroup m => (a -> m) -> (f :.: g) a -> m Source foldMap1' :: Semigroup m => (a -> m) -> (f :.: g) a -> m Source toNonEmpty :: (f :.: g) a -> NonEmpty a Source maximum :: Ord a => (f :.: g) a -> a Source minimum :: Ord a => (f :.: g) a -> a Source head :: (f :.: g) a -> a Source last :: (f :.: g) a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> (f :.: g) a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> (f :.: g) a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> (f :.: g) a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> (f :.: g) a -> b Source | |||||
| (Eq1 f, Eq1 g) => Eq1 (f :.: g) Source | С версии: base-4.21.0.0 |
||||
| (Ord1 f, Ord1 g) => Ord1 (f :.: g) Source | С версии: base-4.21.0.0 |
||||
Определено в Data.Functor.Classes | |||||
| (Read1 f, Read1 g) => Read1 (f :.: g) Source | С версии: base-4.21.0.0 |
||||
Определено в Data.Functor.Classes МетодыliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS ((f :.: g) a) Исходный код liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [(f :.: g) a] Исходный код liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec ((f :.: g) a) Исходный код liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [(f :.: g) a] Исходный код | |
| (Show1 f, Show1 g) => Show1 (f :.: g) Исходный код | С момента: base-4.21.0.0 |
Определено в Data.Functor.Classes МетодыliftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> (f :.: g) a -> ShowS Исходный код liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [(f :.: g) a] -> ShowS Исходный код | |
| (Functor f, Contravariant g) => Contravariant (f :.: g) Исходный код | |
Определено в Data.Functor.Contravariant Методыcontramap :: (a' -> a) -> (f :.: g) a -> (f :.: g) a' Исходный код (>$) :: b -> (f :.: g) b -> (f :.: g) a Исходный код | |
| (Alternative f, Applicative g) => Alternative (f :.: g) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыempty :: (f :.: g) a Исходный код (<|>) :: (f :.: g) a -> (f :.: g) a -> (f :.: g) a Исходный код some :: (f :.: g) a -> (f :.: g) [a] Исходный код many :: (f :.: g) a -> (f :.: g) [a] Исходный код | |
| (Applicative f, Applicative g) => Applicative (f :.: g) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыpure :: a -> (f :.: g) a Исходный код (<*>) :: (f :.: g) (a -> b) -> (f :.: g) a -> (f :.: g) b Исходный код liftA2 :: (a -> b -> c) -> (f :.: g) a -> (f :.: g) b -> (f :.: g) c Исходный код (*>) :: (f :.: g) a -> (f :.: g) b -> (f :.: g) b Исходный код (<*) :: (f :.: g) a -> (f :.: g) b -> (f :.: g) a Исходный код | |
| (Functor f, Functor g) => Functor (f :.: g) Source | Since: base-4.9.0.0 |
| (Foldable f, Foldable g) => Foldable (f :.: g) Source | Since: base-4.9.0.0 |
Defined in GHC.Internal.Data.Foldable Методыfold :: Monoid m => (f :.: g) m -> m Source foldMap :: Monoid m => (a -> m) -> (f :.: g) a -> m Source foldMap' :: Monoid m => (a -> m) -> (f :.: g) a -> m Source foldr :: (a -> b -> b) -> b -> (f :.: g) a -> b Source foldr' :: (a -> b -> b) -> b -> (f :.: g) a -> b Source foldl :: (b -> a -> b) -> b -> (f :.: g) a -> b Source foldl' :: (b -> a -> b) -> b -> (f :.: g) a -> b Source foldr1 :: (a -> a -> a) -> (f :.: g) a -> a Source foldl1 :: (a -> a -> a) -> (f :.: g) a -> a Source toList :: (f :.: g) a -> [a] Source null :: (f :.: g) a -> Bool Source length :: (f :.: g) a -> Int Source elem :: Eq a => a -> (f :.: g) a -> Bool Source maximum :: Ord a => (f :.: g) a -> a Source minimum :: Ord a => (f :.: g) a -> a Source | |
| (Traversable f, Traversable g) => Traversable (f :.: g) Source | Since: base-4.9.0.0 |
Defined in GHC.Internal.Data.Traversable Методыtraverse :: Applicative f0 => (a -> f0 b) -> (f :.: g) a -> f0 ((f :.: g) b) Source sequenceA :: Applicative f0 => (f :.: g) (f0 a) -> f0 ((f :.: g) a) Source mapM :: Monad m => (a -> m b) -> (f :.: g) a -> m ((f :.: g) b) Source sequence :: Monad m => (f :.: g) (m a) -> m ((f :.: g) a) Source | |
| Monoid (f (g p)) => Monoid ((f :.: g) p) Source | Since: base-4.12.0.0 |
| Semigroup (f (g p)) => Semigroup ((f :.: g) p) Source | Since: base-4.12.0.0 |
| (Typeable f, Typeable g, Data p, Data (f (g p))) => Data ((f :.: g) p) Source | Since: base-4.9.0.0 |
Определено в GHC.Internal.Data.Data Краткое описание методовgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g0. g0 -> c g0) -> (f :.: g) p -> c ((f :.: g) p) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ((f :.: g) p) Source toConstr :: (f :.: g) p -> Constr Source dataTypeOf :: (f :.: g) p -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ((f :.: g) p)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ((f :.: g) p)) Source gmapT :: (forall b. Data b => b -> b) -> (f :.: g) p -> (f :.: g) p Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> (f :.: g) p -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> (f :.: g) p -> r Source gmapQ :: (forall d. Data d => d -> u) -> (f :.: g) p -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> (f :.: g) p -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> (f :.: g) p -> m ((f :.: g) p) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :.: g) p -> m ((f :.: g) p) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :.: g) p -> m ((f :.: g) p) Source | |
| Generic ((f :.: g) p) Source | |
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (f :.: g) p -> Rep ((f :.: g) p) x Исходный код to :: Rep ((f :.: g) p) x -> (f :.: g) p Исходный код | |||||
| Read (f (g p)) => Read ((f :.: g) p) Исходный код | С тех пор как: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics МетодыreadsPrec :: Int -> ReadS ((f :.: g) p) Исходный код readList :: ReadS [(f :.: g) p] Исходный код readPrec :: ReadPrec ((f :.: g) p) Исходный код readListPrec :: ReadPrec [(f :.: g) p] Исходный код | |||||
| Show (f (g p)) => Show ((f :.: g) p) Исходный код | С тех пор как: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics МетодыshowsPrec :: Int -> (f :.: g) p -> ShowS Исходный код show :: (f :.: g) p -> String Исходный код showList :: [(f :.: g) p] -> ShowS Исходный код | |||||
| Eq (f (g p)) => Eq ((f :.: g) p) Исходный код | С тех пор как: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics Методы(==) :: (f :.: g) p -> (f :.: g) p -> Bool Исходный код (/=) :: (f :.: g) p -> (f :.: g) p -> Bool Исходный код | |||||
| Ord (f (g p)) => Ord ((f :.: g) p) Исходный код | С тех пор как: base-4.7.0.0 |
||||
Определено в GHC.Internal.Generics Методыcompare :: (f :.: g) p -> (f :.: g) p -> Ordering Источник (<) :: (f :.: g) p -> (f :.: g) p -> Bool Источник (<=) :: (f :.: g) p -> (f :.: g) p -> Bool Источник (>) :: (f :.: g) p -> (f :.: g) p -> Bool Источник (>=) :: (f :.: g) p -> (f :.: g) p -> Bool Источник | |
| type Rep1 (f :.: g :: k -> Тип) Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| type Rep ((f :.: g) p) Источник | С версии: base-4.7.0.0 |
Определено в GHC.Internal.Generics | |
Типы представлений без упаковки
data family URec a (p :: k) Источник
Константы неунифицированных типов
С версии: base-4.9.0.0
Примеры реализации
| Generic1 (URec (Указатель ()) :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 (URec Символ :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 (URec Двойное :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 (URec Float :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 (URec Int :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 (URec Word :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Eq1 (UAddr :: Тип -> Тип) Исходный код | С момента: base-4.21.0.0 |
||||
Определено в Data.Functor.Classes | |||||
| Eq1 (UChar :: Тип -> Тип) Исходный код | С момента: base-4.21.0.0 |
||||
Определено в Data.Functor.Classes | |||||
| Eq1 (UDouble :: Тип -> Тип) Исходный код | С момента: base-4.21.0.0 |
||||
Определено в Data.Functor.Classes | |||||
| Eq1 (UFloat :: Type -> Type) Source | Since: base-4.21.0.0 |
| Eq1 (UInt :: Type -> Type) Source | Since: base-4.21.0.0 |
| Eq1 (UWord :: Type -> Type) Source | Since: base-4.21.0.0 |
| Ord1 (UAddr :: Type -> Type) Source | Since: base-4.21.0.0 |
Defined in Data.Functor.Classes | |
| Ord1 (UChar :: Type -> Type) Source | Since: base-4.21.0.0 |
Defined in Data.Functor.Classes | |
| Ord1 (UDouble :: Type -> Type) Source | Since: base-4.21.0.0 |
Defined in Data.Functor.Classes | |
| Ord1 (UFloat :: Type -> Type) Source | Since: base-4.21.0.0 |
Defined in Data.Functor.Classes | |
| Ord1 (UInt :: Type -> Type) Source | Since: base-4.21.0.0 |
Defined in Data.Functor.Classes | |
| Ord1 (UWord :: Type -> Type) Source | Since: base-4.21.0.0 |
Defined in Data.Functor.Classes | |
| Show1 (UAddr :: Type -> Type) Source | Since: base-4.21.0.0 |
| Show1 (UChar :: Type -> Type) Source | Since: base-4.21.0.0 |
| Show1 (UDouble :: Type -> Type) Source | Since: base-4.21.0.0 |
| Show1 (UFloat :: Type -> Type) Source | Since: base-4.21.0.0 |
| Show1 (UInt :: Type -> Type) Source | Since: base-4.21.0.0 |
| Show1 (UWord :: Type -> Type) Source | Since: base-4.21.0.0 |
| Foldable (UAddr :: Type -> Type) Source | Since: base-4.9.0.0 |
Определено в GHC.Internal.Data.Foldable Методыfold :: Моноид m => UAddr m -> m Source foldMap :: Моноид m => (a -> m) -> UAddr a -> m Source foldMap' :: Моноид m => (a -> m) -> UAddr a -> m Source foldr :: (a -> b -> b) -> b -> UAddr a -> b Source foldr' :: (a -> b -> b) -> b -> UAddr a -> b Source foldl :: (b -> a -> b) -> b -> UAddr a -> b Source foldl' :: (b -> a -> b) -> b -> UAddr a -> b Source foldr1 :: (a -> a -> a) -> UAddr a -> a Source foldl1 :: (a -> a -> a) -> UAddr a -> a Source toList :: UAddr a -> [a] Source null :: UAddr a -> Boolean Source length :: UAddr a -> Целое Source elem :: Eq a => a -> UAddr a -> Boolean Source maximum :: Ord a => UAddr a -> a Source minimum :: Ord a => UAddr a -> a Source | |
| Foldable (UChar :: Type -> Type) Source | Since: base-4.9.0.0 |
Определено в GHC.Internal.Data.Foldable Методыfold :: Monoid m => UChar m -> m Источник foldMap :: Monoid m => (a -> m) -> UChar a -> m Источник foldMap' :: Monoid m => (a -> m) -> UChar a -> m Источник foldr :: (a -> b -> b) -> b -> UChar a -> b Источник foldr' :: (a -> b -> b) -> b -> UChar a -> b Источник foldl :: (b -> a -> b) -> b -> UChar a -> b Источник foldl' :: (b -> a -> b) -> b -> UChar a -> b Источник foldr1 :: (a -> a -> a) -> UChar a -> a Источник foldl1 :: (a -> a -> a) -> UChar a -> a Источник toList :: UChar a -> [a] Источник null :: UChar a -> Bool Источник length :: UChar a -> Int Источник elem :: Eq a => a -> UChar a -> Bool Источник maximum :: Ord a => UChar a -> a Источник minimum :: Ord a => UChar a -> a Источник сумма :: Num a => UChar a -> a Источник произведение :: Num a => UChar a -> a Источник | |
| Foldable (UDouble :: Тип -> Тип) Источник | С: base-4.9.0.0 |
Определено в GHC.Internal.Data.Foldable Методыfold :: Monoid m => UFloat m -> m Исходный код foldMap :: Monoid m => (a -> m) -> UFloat a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> UFloat a -> m Исходный код foldr :: (a -> b -> b) -> b -> UFloat a -> b Исходный код foldr' :: (a -> b -> b) -> b -> UFloat a -> b Исходный код foldl :: (b -> a -> b) -> b -> UFloat a -> b Исходный код foldl' :: (b -> a -> b) -> b -> UFloat a -> b Исходный код foldr1 :: (a -> a -> a) -> UFloat a -> a Исходный код foldl1 :: (a -> a -> a) -> UFloat a -> a Исходный код toList :: UFloat a -> [a] Исходный код null :: UFloat a -> Булево Исходный код length :: UFloat a -> Целое Исходный код elem :: Eq a => a -> UFloat a -> Булево Исходный код maximum :: Ord a => UFloat a -> a Исходный код minimum :: Ord a => UFloat a -> a Исходный код sum :: Num a => UFloat a -> a Исходный код product :: Num a => UFloat a -> a Исходный код | |
| Foldable (UInt :: Тип -> Тип) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Data.Foldable Методыfold :: Monoid m => UInt m -> m Исходный код foldMap :: Monoid m => (a -> m) -> UInt a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> UInt a -> m Исходный код foldr :: (a -> b -> b) -> b -> UInt a -> b Исходный код foldr' :: (a -> b -> b) -> b -> UInt a -> b Исходный код foldl :: (b -> a -> b) -> b -> UInt a -> b Исходный код foldl' :: (b -> a -> b) -> b -> UInt a -> b Исходный код foldr1 :: (a -> a -> a) -> UInt a -> a Исходный код foldl1 :: (a -> a -> a) -> UInt a -> a Исходный код toList :: UInt a -> [a] Исходный код null :: UInt a -> Bool Исходный код length :: UInt a -> Int Исходный код elem :: Eq a => a -> UInt a -> Bool Исходный код maximum :: Ord a => UInt a -> a Исходный код minimum :: Ord a => UInt a -> a Исходный код sum :: Num a => UInt a -> a Исходный код product :: Num a => UInt a -> a Исходный код | |
| Foldable (UWord :: Type -> Type) Исходный код | С момента: base-4.9.0.0 |
| Traversable (UDouble :: Type -> Type) Source | Since: base-4.9.0.0 |
Определено в GHC.Internal.Data.Traversable | |
| Traversable (UFloat :: Type -> Type) Source | Since: base-4.9.0.0 |
Определено в GHC.Internal.Data.Traversable | |
| Traversable (UInt :: Type -> Type) Source | Since: base-4.9.0.0 |
| Traversable (UWord :: Type -> Type) Source | Since: base-4.9.0.0 |
Определено в GHC.Internal.Data.Traversable | |
| Functor (URec (Ptr ()) :: Type -> Type) Source | Since: base-4.9.0.0 |
| Functor (URec Char :: Type -> Type) Источник | С версии: base-4.9.0.0 |
| Functor (URec Double :: Type -> Type) Источник | С версии: base-4.9.0.0 |
| Functor (URec Float :: Type -> Type) Источник | С версии: base-4.9.0.0 |
| Functor (URec Int :: Type -> Type) Источник | С версии: base-4.9.0.0 |
| Functor (URec Word :: Type -> Type) Источник | С версии: base-4.9.0.0 |
| Show (UAddr p) Источник | С версии: base-4.21.0.0 |
Определено в GHC.Internal.Generics МетодыshowsPrec :: Int -> UAddr p -> ShowS Исходный код show :: UAddr p -> String Исходный код showList :: [UAddr p] -> ShowS Исходный код | |||||
| Generic (URec (Ptr ()) p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (URec Char p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (URec Double p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (URec Float p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (URec Int p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (URec Word p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Show (URec Char p) Исходный код | С версии: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics | |||||
| Show (URec Double p) Исходный код | С версии: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics | |||||
| Show (URec Float p) Исходный код | |||||
Определено в GHC.Internal.Generics | |||||
| Show (URec Int p) Исходный код | С версии: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics | |||||
| Ord (URec (Ptr ()) p) Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыcompare :: URec (Ptr ()) p -> URec (Ptr ()) p -> Ordering Источник (<) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Источник (<=) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Источник (>) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Источник (>=) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Источник max :: URec (Ptr ()) p -> URec (Ptr ()) p -> URec (Ptr ()) p Источник min :: URec (Ptr ()) p -> URec (Ptr ()) p -> URec (Ptr ()) p Источник | |
| Ord (URec Char p) Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыcompare :: URec Char p -> URec Char p -> Ordering Источник (<) :: URec Char p -> URec Char p -> Bool Источник (<=) :: URec Char p -> URec Char p -> Bool Источник (>) :: URec Char p -> URec Char p -> Bool Источник (>=) :: URec Char p -> URec Char p -> Bool Источник | |
| Ord (URec Double p) Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыcompare :: URec Double p -> URec Double p -> Ordering Источник (<) :: URec Double p -> URec Double p -> Bool Источник (<=) :: URec Double p -> URec Double p -> Bool Источник (>) :: URec Double p -> URec Double p -> Bool Источник (>=) :: URec Double p -> URec Double p -> Bool Источник max :: URec Double p -> URec Double p -> URec Double p Источник min :: URec Double p -> URec Double p -> URec Double p Источник | |
| Ord (URec Float p) Источник | |
Определено в GHC.Internal.Generics Методыcompare :: URec Float p -> URec Float p -> Ordering Источник (<) :: URec Float p -> URec Float p -> Bool Источник (<=) :: URec Float p -> URec Float p -> Bool Источник (>) :: URec Float p -> URec Float p -> Bool Источник (>=) :: URec Float p -> URec Float p -> Bool Источник max :: URec Float p -> URec Float p -> URec Float p Источник min :: URec Float p -> URec Float p -> URec Float p Источник | |
| Ord (URec Int p) Источник | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыcompare :: URec Int p -> URec Int p -> Ordering Источник (<) :: URec Int p -> URec Int p -> Bool Источник (<=) :: URec Int p -> URec Int p -> Bool Источник (>) :: URec Int p -> URec Int p -> Bool Источник (>=) :: URec Int p -> URec Int p -> Bool Источник | |
| Ord (URec Word p) Источник | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыcompare :: URec Word p -> URec Word p -> Ordering Источник (<) :: URec Word p -> URec Word p -> Bool Источник (<=) :: URec Word p -> URec Word p -> Bool Источник (>) :: URec Word p -> URec Word p -> Bool Источник (>=) :: URec Word p -> URec Word p -> Bool Источник | |
| data URec Char (p :: k) Источник |
Используется для маркировки вхождений С момента: base-4.9.0.0 |
| data URec Double (p :: k) Источник |
Используется для маркировки вхождений С момента: base-4.9.0.0 |
| data URec Float (p :: k) Источник |
Используется для маркировки вхождений С момента: base-4.9.0.0 |
| data URec Int (p :: k) Source |
Используется для маркировки вхождений Since: base-4.9.0.0 |
| data URec Word (p :: k) Source |
Используется для маркировки вхождений Since: base-4.9.0.0 |
| data URec (Ptr ()) (p :: k) Source |
Используется для маркировки вхождений Since: base-4.9.0.0 |
| type Rep1 (URec (Ptr ()) :: k -> Type) Source | Since: base-4.9.0.0 |
Defined in GHC.Internal.Generics | |
| type Rep1 (URec Char :: k -> Type) Source | Since: base-4.9.0.0 |
Defined in GHC.Internal.Generics | |
| type Rep1 (URec Double :: k -> Type) Source | Since: base-4.9.0.0 |
Defined in GHC.Internal.Generics | |
| type Rep1 (URec Float :: k -> Type) Source | Since: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| тип Rep1 (URec Int :: k -> Тип) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| тип Rep1 (URec Word :: k -> Тип) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| тип Rep (URec (Ptr ()) p) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| тип Rep (URec Char p) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| тип Rep (URec Double p) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| type Rep (URec Float p) Исходный код | |
Определено в GHC.Internal.Generics | |
| type Rep (URec Int p) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| type Rep (URec Word p) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
type UAddr = URec (Ptr ()) :: k -> Type Исходный код
С момента: base-4.9.0.0
type UChar = URec Char :: k -> Type Исходный код
С момента: base-4.9.0.0
type UDouble = URec Double :: k -> Type Исходный код
С момента: base-4.9.0.0
type UFloat = URec Float :: k -> Type Исходный код
С момента: base-4.9.0.0
type UInt = URec Int :: k -> Type Исходный код
С момента: base-4.9.0.0
type UWord = URec Word :: k -> Type Исходный код
С момента: base-4.9.0.0
Синонимы для удобства
type Rec0 = K1 R :: Type -> k -> Type Исходный код
Синоним типа для кодирования рекурсии (вида Type)
data R Исходный код
Тег для K1: рекурсия (вида Type)
type D1 = M1 D :: Meta -> (k -> Type) -> k -> Type Source
Синоним типа для кодирования метаданных для типов данных
type C1 = M1 C :: Meta -> (k -> Type) -> k -> Type Source
Синоним типа для кодирования метаданных для конструкторов
type S1 = M1 S :: Meta -> (k -> Type) -> k -> Type Source
Синоним типа для кодирования метаданных для селекторов записей
Тег для M1: тип данных
Тег для M1: конструктор
Тег для M1: селектор записи
Метаинформация
class Datatype (d :: k) where Source
Класс для типов данных, представляющих типы данных
Минимальное полное определение
Методы
datatypeName :: forall k1 t (f :: k1 -> Type) (a :: k1). t d f a -> [Char] Source
Имя типа данных (без квалификатора)
moduleName :: forall k1 t (f :: k1 -> Type) (a :: k1). t d f a -> [Char] Source
Полное имя модуля, в котором объявлен тип
packageName :: forall k1 t (f :: k1 -> Type) (a :: k1). t d f a -> [Char] Source
Имя пакета модуля, в котором объявлен тип
С: base-4.9.0.0
isNewtype :: forall k1 t (f :: k1 -> Type) (a :: k1). t d f a -> Bool Source
Указывает, является ли тип данных новым типом
С: base-4.7.0.0
Примеры использования
| (KnownSymbol n, KnownSymbol m, KnownSymbol p, SingI nt) => Datatype ('MetaData n m p nt :: Meta) Source | С: base-4.9.0.0 |
Определено в GHC.Internal.Generics МетодыdatatypeName :: forall k1 t (f :: k1 -> Type) (a :: k1). t ('MetaData n m p nt) f a -> [Char] Source moduleName :: forall k1 t (f :: k1 -> Type) (a :: k1). t ('MetaData n m p nt) f a -> [Char] Source packageName :: forall k1 t (f :: k1 -> Type) (a :: k1). t ('MetaData n m p nt) f a -> [Char] Source isNewtype :: forall k1 t (f :: k1 -> Type) (a :: k1). t ('MetaData n m p nt) f a -> Bool Source | |
class Constructor (c :: k) where Source
Класс для типов данных, представляющих конструкторы данных
Минимальное полное определение
Методы
conName :: forall k1 t (f :: k1 -> Type) (a :: k1). t c f a -> [Char] Source
Имя конструктора
conFixity :: forall k1 t (f :: k1 -> Type) (a :: k1). t c f a -> Fixity Source
Приоритет конструктора
conIsRecord :: forall k1 t (f :: k1 -> Type) (a :: k1). t c f a -> Bool Source
Указывает, является ли этот конструктор записью
Экземпляры
| (KnownSymbol n, SingI f, SingI r) => Конструктор ('MetaCons n f r :: Мета) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics МетодыconName :: forall k1 t (f0 :: k1 -> Тип) (a :: k1). t ('MetaCons n f r) f0 a -> [Символ] Исходный код conFixity :: forall k1 t (f0 :: k1 -> Тип) (a :: k1). t ('MetaCons n f r) f0 a -> Фиксированность Исходный код conIsRecord :: forall k1 t (f0 :: k1 -> Тип) (a :: k1). t ('MetaCons n f r) f0 a -> Булево Исходный код | |
class Селектор (s :: k) where Исходный код
Класс для типов данных, представляющих записи
Методы
selName :: forall k1 t (f :: k1 -> Тип) (a :: k1). t s f a -> [Символ] Исходный код
Имя селектора
selSourceUnpackedness :: forall k1 t (f :: k1 -> Тип) (a :: k1). t s f a -> SourceUnpackedness Исходный код
Аннотация распаковки селектора (если есть)
С момента: base-4.9.0.0
selSourceStrictness :: forall k1 t (f :: k1 -> Тип) (a :: k1). t s f a -> SourceStrictness Исходный код
Аннотация строгости селектора (если есть)
С момента: base-4.9.0.0
selDecidedStrictness :: forall k1 t (f :: k1 -> Тип) (a :: k1). t s f a -> DecidedStrictness Исходный код
Строгость, выведенная компилятором для селектора
С момента: base-4.9.0.0
Экземпляры
| (SingI mn, SingI su, SingI ss, SingI ds) => Селектор ('MetaSel mn su ss ds :: Мета) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics МетодыselName :: forall k1 t (f :: k1 -> Тип) (a :: k1). t ('MetaSel mn su ss ds) f a -> [Символ] Исходный код selSourceUnpackedness :: forall k1 t (f :: k1 -> Тип) (a :: k1). t ('MetaSel mn su ss ds) f a -> SourceUnpackedness Исходный код selSourceStrictness :: forall k1 t (f :: k1 -> Тип) (a :: k1). t ('MetaSel mn su ss ds) f a -> SourceStrictness Исходный код selDecidedStrictness :: forall k1 t (f :: k1 -> Тип) (a :: k1). t ('MetaSel mn su ss ds) f a -> DecidedStrictness Исходный код | |
data Фиксированность Исходный код
Тип данных для представления фиксированности конструктора. Декларация `infix |` напрямую соответствует применению Infix.
Конструкторы
| Префикс | |
| Инфикс Ассоциативность Целое число |
Экземпляры
| Data Fixity Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Fixity -> c Fixity Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Fixity Источник toConstr :: Fixity -> Constr Источник dataTypeOf :: Fixity -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Fixity) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Fixity) Источник gmapT :: (forall b. Data b => b -> b) -> Fixity -> Fixity Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Fixity -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Fixity -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity Источник | |
| Generic Fixity Источник | |
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Read Fixity Источник | С момента: base-4.6.0.0 |
||||
| Show Fixity Источник | С момента: base-4.6.0.0 |
||||
| Eq Fixity Источник | С момента: base-4.6.0.0 |
||||
| Ord Fixity Источник | С момента: base-4.6.0.0 |
||||
Определено в GHC.Internal.Generics Методыcompare :: Fixity -> Fixity -> Ordering Исходный код (<) :: Fixity -> Fixity -> Bool Исходный код (<=) :: Fixity -> Fixity -> Bool Исходный код (>) :: Fixity -> Fixity -> Bool Исходный код (>=) :: Fixity -> Fixity -> Bool Исходный код max :: Fixity -> Fixity -> Fixity Исходный код min :: Fixity -> Fixity -> Fixity Исходный код | |
| type Rep Fixity Исходный код | С версии: base-4.7.0.0 |
Определено в GHC.Internal.Generics type Rep Fixity = D1 ('MetaData "Fixity" "GHC.Internal.Generics" "ghc-internal" 'False) (C1 ('MetaCons "Prefix" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Infix" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Associativity) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Целое))) | |
data FixityI Исходный код
Этот вариант Fixity появляется на уровне типов.
С версии: base-4.9.0.0
Конструкторы
| PrefixI | |
| InfixI Ассоциативность Nat |
Примеры
| SingKind FixityI | С тех пор: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| SingI 'PrefixI | С тех пор: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics | |||||
| (SingI a, KnownNat n) => SingI ('InfixI a n :: FixityI) | С тех пор: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics | |||||
| type DemoteRep FixityI Исходный код | |||||
Определено в GHC.Internal.Generics | |||||
| data Sing (a :: FixityI) Исходный код | |||||
Определено в GHC.Internal.Generics | |||||
data Ассоциативность Исходный код
Тип данных для представления ассоциативности конструктора
Конструкторы
| Левоассоциативный | |
| Правоассоциативный | |
| Неассоциативный |
Экземпляры
| Data Associativity Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Associativity -> c Associativity Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Associativity Источник toConstr :: Associativity -> Constr Источник dataTypeOf :: Associativity -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Associativity) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Associativity) Источник gmapT :: (forall b. Data b => b -> b) -> Associativity -> Associativity Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Associativity -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Associativity -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Associativity -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Associativity -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Associativity -> m Associativity Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Associativity -> m Associativity Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Associativity -> m Associativity Источник | |
| Bounded Associativity Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| Enum Associativity Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыrange :: (Ассоциативность, Ассоциативность) -> [Ассоциативность] Исходный код index :: (Ассоциативность, Ассоциативность) -> Ассоциативность -> Int Исходный код unsafeIndex :: (Ассоциативность, Ассоциативность) -> Ассоциативность -> Int Исходный код inRange :: (Ассоциативность, Ассоциативность) -> Ассоциативность -> Bool Исходный код rangeSize :: (Ассоциативность, Ассоциативность) -> Int Исходный код unsafeRangeSize :: (Ассоциативность, Ассоциативность) -> Int Исходный код | |
| Read Ассоциативность Исходный код | С момента: base-4.6.0.0 |
Определено в GHC.Internal.Generics | |
| Show Ассоциативность Исходный код | С момента: base-4.6.0.0 |
Определено в GHC.Internal.Generics МетодыshowsPrec :: Int -> Ассоциативность -> ShowS Исходный код show :: Ассоциативность -> String Исходный код showList :: [Ассоциативность] -> ShowS Исходный код | |
| Eq Ассоциативность Исходный код | С момента: base-4.6.0.0 |
Определено в GHC.Internal.Generics Методы(==) :: Ассоциативность -> Ассоциативность -> Bool Исходный код (/=) :: Ассоциативность -> Ассоциативность -> Bool Исходный код | |
| Ord Ассоциативность Исходный код | С момента: base-4.6.0.0 |
Определено в GHC.Internal.Generics Методыcompare :: Associativity -> Associativity -> Ordering Исходный код (<) :: Associativity -> Associativity -> Bool Исходный код (<=) :: Associativity -> Associativity -> Bool Исходный код (>) :: Associativity -> Associativity -> Bool Исходный код (>=) :: Associativity -> Associativity -> Bool Исходный код max :: Associativity -> Associativity -> Associativity Исходный код min :: Associativity -> Associativity -> Associativity Исходный код | |
| SingI 'LeftAssociative | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsing :: Sing 'LeftAssociative | |
| SingI 'NotAssociative | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsing :: Sing 'NotAssociative | |
| SingI 'RightAssociative | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsing :: Sing 'RightAssociative | |
| type DemoteRep Associativity Исходный код | |
Определено в GHC.Internal.Generics type DemoteRep Associativity = Associativity
| |
| type Rep Associativity Исходный код | С момента: base-4.7.0.0 |
Определено в GHC.Internal.Generics type Rep Associativity = D1 ('MetaData "Associativity" "GHC.Internal.Generics" "ghc-internal" 'False) (C1 ('MetaCons "LeftAssociative" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "RightAssociative" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NotAssociative" 'PrefixI 'False) (U1 :: Type -> Type))) | |
| data Sing (a :: Associativity) Исходный код | |
Определено в GHC.Internal.Generics data Sing (a :: Associativity) where
| |
prec :: Fixity -> Int Исходный код
Получение приоритета значения фиксированности.
data SourceUnpackedness Исходный код
Распакованность поля, как пользователь её написал в исходном коде. Например, в следующем типе данных:
data E = ExampleConstructor Int
{-# NOUNPACK #-} Int
{-# UNPACK #-} Int
Поля ExampleConstructor имеют NoSourceUnpackedness, SourceNoUnpack и SourceUnpack соответственно.
С момента: base-4.9.0.0
Конструкторы
| NoSourceUnpackedness | |
| SourceNoUnpack | |
| SourceUnpack |
Экземпляры
| Data SourceUnpackedness Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SourceUnpackedness -> c SourceUnpackedness Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SourceUnpackedness Источник toConstr :: SourceUnpackedness -> Constr Источник dataTypeOf :: SourceUnpackedness -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SourceUnpackedness) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SourceUnpackedness) Источник gmapT :: (forall b. Data b => b -> b) -> SourceUnpackedness -> SourceUnpackedness Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SourceUnpackedness -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SourceUnpackedness -> r Источник gmapQ :: (forall d. Data d => d -> u) -> SourceUnpackedness -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> SourceUnpackedness -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> SourceUnpackedness -> m SourceUnpackedness Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceUnpackedness -> m SourceUnpackedness Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceUnpackedness -> m SourceUnpackedness Источник | |
| Bounded SourceUnpackedness Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| Enum SourceUnpackedness Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsucc :: SourceUnpackedness -> SourceUnpackedness Исходный код pred :: SourceUnpackedness -> SourceUnpackedness Исходный код toEnum :: Int -> SourceUnpackedness Исходный код fromEnum :: SourceUnpackedness -> Int Исходный код enumFrom :: SourceUnpackedness -> [SourceUnpackedness] Исходный код enumFromThen :: SourceUnpackedness -> SourceUnpackedness -> [SourceUnpackedness] Исходный код enumFromTo :: SourceUnpackedness -> SourceUnpackedness -> [SourceUnpackedness] Исходный код enumFromThenTo :: SourceUnpackedness -> SourceUnpackedness -> SourceUnpackedness -> [SourceUnpackedness] Исходный код | |||||
| Generic SourceUnpackedness Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: SourceUnpackedness -> Rep SourceUnpackedness x Исходный код to :: Rep SourceUnpackedness x -> SourceUnpackedness Исходный код | |||||
| SingKind SourceUnpackedness | С момента: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics Связанные типы
МетодыfromSing :: forall (a :: SourceUnpackedness). Sing a -> DemoteRep SourceUnpackedness | |||||
| Ix SourceUnpackedness Исходный код | С момента: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics Методыrange :: (SourceUnpackedness, SourceUnpackedness) -> [SourceUnpackedness] Исходный код index :: (SourceUnpackedness, SourceUnpackedness) -> SourceUnpackedness -> Целое Исходный код unsafeIndex :: (SourceUnpackedness, SourceUnpackedness) -> SourceUnpackedness -> Целое Исходный код inRange :: (SourceUnpackedness, SourceUnpackedness) -> SourceUnpackedness -> Булево Исходный код rangeSize :: (SourceUnpackedness, SourceUnpackedness) -> Целое Исходный код unsafeRangeSize :: (SourceUnpackedness, SourceUnpackedness) -> Целое Исходный код | |
| Чтение SourceUnpackedness Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| Вывод SourceUnpackedness Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics МетодыshowsPrec :: Целое -> SourceUnpackedness -> ShowS Исходный код show :: SourceUnpackedness -> Строка Исходный код showList :: [SourceUnpackedness] -> ShowS Исходный код | |
| Равенство SourceUnpackedness Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методы(==) :: SourceUnpackedness -> SourceUnpackedness -> Булево Исходный код (/=) :: SourceUnpackedness -> SourceUnpackedness -> Булево Исходный код | |
| Порядок SourceUnpackedness Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыcompare :: SourceUnpackedness -> SourceUnpackedness -> Ordering Исходный код (<) :: SourceUnpackedness -> SourceUnpackedness -> Bool Исходный код (<=) :: SourceUnpackedness -> SourceUnpackedness -> Bool Исходный код (>) :: SourceUnpackedness -> SourceUnpackedness -> Bool Исходный код (>=) :: SourceUnpackedness -> SourceUnpackedness -> Bool Исходный код max :: SourceUnpackedness -> SourceUnpackedness -> SourceUnpackedness Исходный код min :: SourceUnpackedness -> SourceUnpackedness -> SourceUnpackedness Исходный код | |
| SingI 'NoSourceUnpackedness | С момента выпуска: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsing :: Sing 'NoSourceUnpackedness | |
| SingI 'SourceNoUnpack | С момента выпуска: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsing :: Sing 'SourceNoUnpack | |
| SingI 'SourceUnpack | С момента выпуска: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsing :: Sing 'SourceUnpack | |
| type DemoteRep SourceUnpackedness Исходный код | |
Определено в GHC.Internal.Generics type DemoteRep SourceUnpackedness = SourceUnpackedness
| |
| type Rep SourceUnpackedness Исходный код | С момента выпуска: base-4.9.0.0 |
Определено в GHC.Internal.Generics type Rep SourceUnpackedness = D1 ('MetaData "SourceUnpackedness" "GHC.Internal.Generics" "ghc-internal" 'False) (C1 ('MetaCons "NoSourceUnpackedness" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SourceNoUnpack" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SourceUnpack" 'PrefixI 'False) (U1 :: Type -> Type))) | |
| data Sing (a :: SourceUnpackedness) Исходный код | |
Определено в GHC.Internal.Generics data Sing (a :: SourceUnpackedness) where
| |
data SourceStrictness Исходный код
Степень строгости поля, как пользователь его написал в исходном коде. Например, в следующем типе данных:
data E = ExampleConstructor Int ~Int !Int
Поля ExampleConstructor имеют NoSourceStrictness, SourceLazy и SourceStrict соответственно.
С момента выпуска: base-4.9.0.0
Конструкторы
| NoSourceStrictness | |
| SourceLazy | |
| SourceStrict |
Примеры реализации
| Data SourceStrictness Источник | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SourceStrictness -> c SourceStrictness Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SourceStrictness Источник toConstr :: SourceStrictness -> Constr Источник dataTypeOf :: SourceStrictness -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Может (c SourceStrictness) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Может (c SourceStrictness) Источник gmapT :: (forall b. Data b => b -> b) -> SourceStrictness -> SourceStrictness Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SourceStrictness -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SourceStrictness -> r Источник gmapQ :: (forall d. Data d => d -> u) -> SourceStrictness -> [u] Источник gmapQi :: Целое -> (forall d. Data d => d -> u) -> SourceStrictness -> u Источник gmapM :: Монад m => (forall d. Data d => d -> m d) -> SourceStrictness -> m SourceStrictness Источник gmapMp :: Монад Plus m => (forall d. Data d => d -> m d) -> SourceStrictness -> m SourceStrictness Источник gmapMo :: Монад Plus m => (forall d. Data d => d -> m d) -> SourceStrictness -> m SourceStrictness Источник | |
| Ограниченный SourceStrictness Источник | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| Перечисление SourceStrictness Источник | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsucc :: SourceStrictness -> SourceStrictness Источник pred :: SourceStrictness -> SourceStrictness Источник toEnum :: Int -> SourceStrictness Источник fromEnum :: SourceStrictness -> Int Источник enumFrom :: SourceStrictness -> [SourceStrictness] Источник enumFromThen :: SourceStrictness -> SourceStrictness -> [SourceStrictness] Источник enumFromTo :: SourceStrictness -> SourceStrictness -> [SourceStrictness] Источник enumFromThenTo :: SourceStrictness -> SourceStrictness -> SourceStrictness -> [SourceStrictness] Источник | |||||
| Generic SourceStrictness Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: SourceStrictness -> Rep SourceStrictness x Источник to :: Rep SourceStrictness x -> SourceStrictness Источник | |||||
| SingKind SourceStrictness | Since: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics Связанные типы
МетодыfromSing :: forall (a :: SourceStrictness). Sing a -> DemoteRep SourceStrictness | |||||
| Ix SourceStrictness Источник | Since: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics Методыrange :: (SourceStrictness, SourceStrictness) -> [SourceStrictness] Источник index :: (SourceStrictness, SourceStrictness) -> SourceStrictness -> Int Источник unsafeIndex :: (SourceStrictness, SourceStrictness) -> SourceStrictness -> Int Источник inRange :: (SourceStrictness, SourceStrictness) -> SourceStrictness -> Bool Источник rangeSize :: (SourceStrictness, SourceStrictness) -> Int Источник unsafeRangeSize :: (SourceStrictness, SourceStrictness) -> Int Источник | |
| Read SourceStrictness Источник | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics МетодыreadsPrec :: Int -> ReadS SourceStrictness Источник readList :: ReadS [SourceStrictness] Источник | |
| Show SourceStrictness Источник | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics МетодыshowsPrec :: Int -> SourceStrictness -> ShowS Источник show :: SourceStrictness -> String Источник showList :: [SourceStrictness] -> ShowS Источник | |
| Eq SourceStrictness Источник | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методы(==) :: SourceStrictness -> SourceStrictness -> Bool Источник (/=) :: SourceStrictness -> SourceStrictness -> Bool Источник | |
| Ord SourceStrictness Источник | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыcompare :: SourceStrictness -> SourceStrictness -> Ordering Исходный код (<) :: SourceStrictness -> SourceStrictness -> Bool Исходный код (<=) :: SourceStrictness -> SourceStrictness -> Bool Исходный код (>) :: SourceStrictness -> SourceStrictness -> Bool Исходный код (>=) :: SourceStrictness -> SourceStrictness -> Bool Исходный код max :: SourceStrictness -> SourceStrictness -> SourceStrictness Исходный код min :: SourceStrictness -> SourceStrictness -> SourceStrictness Исходный код | |
| SingI 'NoSourceStrictness | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsing :: Sing 'NoSourceStrictness | |
| SingI 'SourceLazy | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsing :: Sing 'SourceLazy | |
| SingI 'SourceStrict | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsing :: Sing 'SourceStrict | |
| type DemoteRep SourceStrictness Исходный код | |
Определено в GHC.Internal.Generics type DemoteRep SourceStrictness = SourceStrictness
| |
| type Rep SourceStrictness Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics type Rep SourceStrictness = D1 ('MetaData "SourceStrictness" "GHC.Internal.Generics" "ghc-internal" 'False) (C1 ('MetaCons "NoSourceStrictness" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SourceLazy" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SourceStrict" 'PrefixI 'False) (U1 :: Type -> Type))) | |
| data Sing (a :: SourceStrictness) Исходный код | |
Определено в GHC.Internal.Generics data Sing (a :: SourceStrictness) where
| |
data DecidedStrictness Исходный код
Степень строгости, которую GHC вычисляет для поля во время компиляции. Хотя существует девять различных комбинаций SourceUnpackedness и SourceStrictness, степень строгости, которую GHC определит, будет ленивой, строгой или упакованной. Решение GHC зависит как от того, что пользователь пишет в исходном коде, так и от флагов GHC. В качестве примера рассмотрим этот тип данных:
data E = ExampleConstructor {-# UNPACK #-} !Int !Int Int
- При компиляции без оптимизации или других расширений языка поля
ExampleConstructorбудут иметьDecidedStrict,DecidedStrictиDecidedLazyсоответственно. - При компиляции с включённым
-XStrictData, поля будут иметьDecidedStrict,DecidedStrictиDecidedStrictсоответственно. - При компиляции с включённым
-O2, поля будут иметьDecidedUnpack,DecidedStrictиDecidedLazyсоответственно.
С момента: base-4.9.0.0
Конструкторы
| DecidedLazy | |
| DecidedStrict | |
| DecidedUnpack |
Экземпляры
| Data DecidedStrictness Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DecidedStrictness -> c DecidedStrictness Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DecidedStrictness Источник toConstr :: DecidedStrictness -> Constr Источник dataTypeOf :: DecidedStrictness -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DecidedStrictness) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DecidedStrictness) Источник gmapT :: (forall b. Data b => b -> b) -> DecidedStrictness -> DecidedStrictness Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DecidedStrictness -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DecidedStrictness -> r Источник gmapQ :: (forall d. Data d => d -> u) -> DecidedStrictness -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> DecidedStrictness -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> DecidedStrictness -> m DecidedStrictness Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DecidedStrictness -> m DecidedStrictness Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DecidedStrictness -> m DecidedStrictness Источник | |
| Bounded DecidedStrictness Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| Enum DecidedStrictness Источник | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsucc :: DecidedStrictness -> DecidedStrictness Исходный код pred :: DecidedStrictness -> DecidedStrictness Исходный код toEnum :: Int -> DecidedStrictness Исходный код fromEnum :: DecidedStrictness -> Int Исходный код enumFrom :: DecidedStrictness -> [DecidedStrictness] Исходный код enumFromThen :: DecidedStrictness -> DecidedStrictness -> [DecidedStrictness] Исходный код enumFromTo :: DecidedStrictness -> DecidedStrictness -> [DecidedStrictness] Исходный код enumFromThenTo :: DecidedStrictness -> DecidedStrictness -> DecidedStrictness -> [DecidedStrictness] Исходный код | |||||
| Generic DecidedStrictness Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: DecidedStrictness -> Rep DecidedStrictness x Исходный код to :: Rep DecidedStrictness x -> DecidedStrictness Исходный код | |||||
| SingKind DecidedStrictness | С момента: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics Связанные типы
МетодыfromSing :: forall (a :: DecidedStrictness). Sing a -> DemoteRep DecidedStrictness | |||||
| Ix DecidedStrictness Исходный код | С момента: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics Методыrange :: (DecidedStrictness, DecidedStrictness) -> [DecidedStrictness] Исходный код index :: (DecidedStrictness, DecidedStrictness) -> DecidedStrictness -> Int Исходный код unsafeIndex :: (DecidedStrictness, DecidedStrictness) -> DecidedStrictness -> Int Исходный код inRange :: (DecidedStrictness, DecidedStrictness) -> DecidedStrictness -> Bool Исходный код rangeSize :: (DecidedStrictness, DecidedStrictness) -> Int Исходный код unsafeRangeSize :: (DecidedStrictness, DecidedStrictness) -> Int Исходный код | |
| Read DecidedStrictness Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| Show DecidedStrictness Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics МетодыshowsPrec :: Int -> DecidedStrictness -> ShowS Исходный код show :: DecidedStrictness -> String Исходный код showList :: [DecidedStrictness] -> ShowS Исходный код | |
| Eq DecidedStrictness Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методы(==) :: DecidedStrictness -> DecidedStrictness -> Bool Исходный код (/=) :: DecidedStrictness -> DecidedStrictness -> Bool Исходный код | |
| Ord DecidedStrictness Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыcompare :: DecidedStrictness -> DecidedStrictness -> Ordering Исходный код (<) :: DecidedStrictness -> DecidedStrictness -> Bool Исходный код (<=) :: DecidedStrictness -> DecidedStrictness -> Bool Исходный код (>) :: DecidedStrictness -> DecidedStrictness -> Bool Исходный код (>=) :: DecidedStrictness -> DecidedStrictness -> Bool Исходный код max :: DecidedStrictness -> DecidedStrictness -> DecidedStrictness Исходный код min :: DecidedStrictness -> DecidedStrictness -> DecidedStrictness Исходный код | |
| SingI 'DecidedLazy | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsing :: Sing 'DecidedLazy | |
| SingI 'DecidedStrict | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsing :: Sing 'DecidedStrict | |
| SingI 'DecidedUnpack | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics Методыsing :: Sing 'DecidedUnpack | |
| type DemoteRep DecidedStrictness Исходный код | |
Определено в GHC.Internal.Generics type DemoteRep DecidedStrictness = DecidedStrictness
| |
| type Rep DecidedStrictness Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Generics type Rep DecidedStrictness = D1 ('MetaData "DecidedStrictness" "GHC.Internal.Generics" "ghc-internal" 'False) (C1 ('MetaCons "DecidedLazy" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DecidedStrict" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DecidedUnpack" 'PrefixI 'False) (U1 :: Type -> Type))) | |
| data Sing (a :: DecidedStrictness) Исходный код | |
Определено в GHC.Internal.Generics data Sing (a :: DecidedStrictness) where
| |
data Meta Исходный код
Тип для представления метаданных, связанных с типом данных (MetaData), конструктором (MetaCons) или селектором поля (MetaSel).
- В
MetaData n m p nt,n— имя типа данных,m— модуль, в котором определён тип данных,p— пакет, в котором определён тип данных, аnt—'True, если тип данных являетсяnewtype. - В
MetaCons n f s,n— имя конструктора,f— его приоритет, аs—'True, если конструктор содержит селекторы записи. - В
MetaSel mn su ss ds, если поле использует синтаксис записи, тоmn—Justимя записи. В противном случае,mn—Nothing.suиss— аннотации разворачивания и строгости поля, аds— строгость, которую GHC вычисляет для поля.
С момента: base-4.9.0.0
Конструкторы
| MetaData Symbol Symbol Symbol Bool | |
| MetaCons Symbol FixityI Bool | |
| MetaSel (Maybe Symbol) SourceUnpackedness SourceStrictness DecidedStrictness |
Примеры использования
| (KnownSymbol n, SingI f, SingI r) => Конструктор ('MetaCons n f r :: Meta) Исходный код | С момента выпуска: base-4.9.0.0 |
Определено в GHC.Internal.Generics МетодыconName :: forall k1 t (f0 :: k1 -> Тип) (a :: k1). t ('MetaCons n f r) f0 a -> [Символ] Исходный код conFixity :: forall k1 t (f0 :: k1 -> Тип) (a :: k1). t ('MetaCons n f r) f0 a -> Приоритет Исходный код conIsRecord :: forall k1 t (f0 :: k1 -> Тип) (a :: k1). t ('MetaCons n f r) f0 a -> Булево Исходный код | |
| (KnownSymbol n, KnownSymbol m, KnownSymbol p, SingI nt) => Тип данных ('MetaData n m p nt :: Meta) Исходный код | С момента выпуска: base-4.9.0.0 |
Определено в GHC.Internal.Generics МетодыdatatypeName :: forall k1 t (f :: k1 -> Тип) (a :: k1). t ('MetaData n m p nt) f a -> [Символ] Исходный код moduleName :: forall k1 t (f :: k1 -> Тип) (a :: k1). t ('MetaData n m p nt) f a -> [Символ] Исходный код packageName :: forall k1 t (f :: k1 -> Тип) (a :: k1). t ('MetaData n m p nt) f a -> [Символ] Исходный код isNewtype :: forall k1 t (f :: k1 -> Тип) (a :: k1). t ('MetaData n m p nt) f a -> Булево Исходный код | |
| (SingI mn, SingI su, SingI ss, SingI ds) => Селектор ('MetaSel mn su ss ds :: Meta) Исходный код | С момента выпуска: base-4.9.0.0 |
Определено в GHC.Internal.Generics МетодыselName :: forall k1 t (f :: k1 -> Тип) (a :: k1). t ('MetaSel mn su ss ds) f a -> [Символ] Исходный код selSourceUnpackedness :: forall k1 t (f :: k1 -> Тип) (a :: k1). t ('MetaSel mn su ss ds) f a -> SourceUnpackedness Исходный код selSourceStrictness :: forall k1 t (f :: k1 -> Тип) (a :: k1). t ('MetaSel mn su ss ds) f a -> SourceStrictness Исходный код selDecidedStrictness :: forall k1 t (f :: k1 -> Тип) (a :: k1). t ('MetaSel mn su ss ds) f a -> DecidedStrictness Исходный код | |
Обобщённые типы классов
class Generic a where Исходный код
Типы, представленные обобщённо, вида *. Данный класс выводим в GHC с флагом DeriveGeneric.
Пример Generic должен удовлетворять следующим законам:
from . to ≡ id to . from ≡ id
Методы
from :: a -> Rep a x Исходный код
Преобразование из типа данных в его представление
to :: Rep a x -> a Исходный код
Преобразование из представления в тип данных
Примеры использования
| Generic Void Исходный код | |||||
Определено в GHC.Internal.Generics | |||||
| Generic Порядок байтов Исходный код | |||||
Определено в GHC.Internal.ByteOrder Связанные типы
Методыfrom :: Порядок байтов -> Rep Порядок байтов x Исходный код to :: Rep Порядок байтов x -> Порядок байтов Исходный код | |||||
| Generic Тип закрытия Исходный код | |||||
Определено в GHC.Internal.ClosureTypes Связанные типы
| |||||
|
|
Методыfrom :: ClosureType -> Rep ClosureType x Исходный код to :: Rep ClosureType x -> ClosureType Исходный код |
| Generic All Source | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Generic Any Source | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Generic Version Source | |||||
Определено в GHC.Internal.Data.Version Связанные типы
| |||||
| Generic Fingerprint Source | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic ForeignSrcLang Источник | |||||
Определено в GHC.Internal.ForeignSrcLang Связанные типы
Методыfrom :: ForeignSrcLang -> Rep ForeignSrcLang x Источник to :: Rep ForeignSrcLang x -> ForeignSrcLang Источник | |||||
| Generic Ассоциативность Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: Associativity -> Rep Associativity x Исходный код to :: Rep Associativity x -> Associativity Исходный код | |||||
| Generic DecidedStrictness Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: DecidedStrictness -> Rep DecidedStrictness x Исходный код to :: Rep DecidedStrictness x -> DecidedStrictness Исходный код | |||||
| Generic Fixity Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic SourceStrictness Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: SourceStrictness -> Rep SourceStrictness x Источник to :: Rep SourceStrictness x -> SourceStrictness Источник | |||||
| Generic SourceUnpackedness Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: SourceUnpackedness -> Rep SourceUnpackedness x Источник to :: Rep SourceUnpackedness x -> SourceUnpackedness Источник | |||||
| Generic ExitCode Источник | |||||
Определено в GHC.Internal.IO.Exception Связанные типы
| |||||
| Generic Extension Источник | |||||
Определено в GHC.Internal.LanguageExtensions Связанные типы
| |||||
|
|
|
|
|
Методыfrom :: Расширение -> Представление Расширение x Исходный код to :: Представление Расширение x -> Расширение Исходный код | |||
| Generic CCFlags Исходный код | |||
Определено в GHC.Internal.RTS.Flags Связанные типы
| |||||
| Generic ConcFlags Источник | |||||
Определено в GHC.Internal.RTS.Flags Связанные типы
| |||||
| Generic DebugFlags Источник | |||||
Определено в GHC.Internal.RTS.Flags Связанные типы
| |||||
Методыfrom :: DebugFlags -> Rep DebugFlags x Источник to :: Rep DebugFlags x -> DebugFlags Источник | |||||
| Generic DoCostCentres Источник | |||||
Определено в GHC.Internal.RTS.Flags Связанные типы
Методыfrom :: DoCostCentres -> Rep DoCostCentres x Источник to :: Rep DoCostCentres x -> DoCostCentres Источник | |||||
| Generic DoHeapProfile Источник | |||||
Определено в GHC.Internal.RTS.Flags Связанные типы
Методыfrom :: DoHeapProfile -> Rep DoHeapProfile x Источник to :: Rep DoHeapProfile x -> DoHeapProfile Источник | |||||
| Generic DoTrace Источник | |||||
Определено в GHC.Internal.RTS.Flags Связанные типы
| |||||
| Generic GCFlags Источник | |||||
Определено в GHC.Internal.RTS.Flags Связанные типы
| |||||
|
| |||
| Generic GiveGCStats Исходный код | |||
Определено в GHC.Internal.RTS.Flags Связанные типы
Методыfrom :: GiveGCStats -> Rep GiveGCStats x Исходный код to :: Rep GiveGCStats x -> GiveGCStats Исходный код | |||||
| Generic HpcFlags Исходный код | |||||
Определено в GHC.Internal.RTS.Flags Связанные типы
Методыfrom :: HpcFlags -> Rep HpcFlags x Исходный код to :: Rep HpcFlags x -> HpcFlags Исходный код | |||||
| Generic MiscFlags Исходный код | |||||
Определено в GHC.Internal.RTS.Flags Связанные типы
Методыfrom :: MiscFlags -> Rep MiscFlags x Исходный код to :: Rep MiscFlags x -> MiscFlags Исходный код | |||||
| Generic ParFlags Исходный код | |||||
Определено в GHC.Internal.RTS.Flags Связанные типы
Методыfrom :: ParFlags -> Rep ParFlags x Исходный код to :: Rep ParFlags x -> ParFlags Исходный код | |||||
| Generic ProfFlags Исходный код | |||||
Определено в GHC.Internal.RTS.Flags Связанные типы
| |||||
|
| Generic RTSFlags Source | |||||
Определено в GHC.Internal.RTS.Flags Связанные типы
| |||||
| Generic TickyFlags Source | |||||
Определено в GHC.Internal.RTS.Flags Связанные типы
Методыfrom :: TickyFlags -> Rep TickyFlags x Исходный код to :: Rep TickyFlags x -> TickyFlags Исходный код | |||||
| Generic TraceFlags Исходный код | |||||
Определено в GHC.Internal.RTS.Flags Связанные типы
Методыfrom :: TraceFlags -> Rep TraceFlags x Исходный код to :: Rep TraceFlags x -> TraceFlags Исходный код | |||||
| Generic SrcLoc Source | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic GCDetails Source | |||||
Определено в GHC.Internal.Stats Связанные типы
| |||||
|
| Generic RTSStats Исходный код | |||||
Определено в GHC.Internal.Stats Связанные типы
| |||||
|
| |||
| Generic AnnLookup Источник | |||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic AnnTarget Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Bang Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic BndrVis Исходный код | |||||
Определено в GHC.Internal.TH.Syntax | |||||
| Generic Body Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Bytes Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Callconv Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: Callconv -> Rep Callconv x Исходный код to :: Rep Callconv x -> Callconv Исходный код | |||||
| Generic Clause Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Con Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
|
Методыfrom :: Конструктор -> Rep Конструктор x ИсходныйКод to :: Rep Конструктор x -> Конструктор ИсходныйКод | |||||
| Generic Определение ИсходныйКод | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
|
|
|
|
|
|
| |||
| Generic ОпределённаяСтрогость Исходный код | |||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: DecidedStrictness -> Rep DecidedStrictness x Исходный код to :: Rep DecidedStrictness x -> DecidedStrictness Исходный код | |||||
| Generic DerivClause Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: DerivClause -> Rep DerivClause x Исходный код to :: Rep DerivClause x -> DerivClause Исходный код | |||||
| Generic DerivStrategy Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: DerivStrategy -> Rep DerivStrategy x Исходный код to :: Rep DerivStrategy x -> DerivStrategy Исходный код | |||||
| Generic DocLoc Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Exp Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
|
|
|
|
|
| |||
| Generic FamilyResultSig Источник | |||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: FamilyResultSig -> Rep FamilyResultSig x Источник to :: Rep FamilyResultSig x -> FamilyResultSig Источник | |||||
| Generic Fixity Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic FixityDirection Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: FixityDirection -> Rep FixityDirection x Исходный код to :: Rep FixityDirection x -> FixityDirection Исходный код | |||||
| Generic Foreign Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic FunDep Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Guard Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Info Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
|
| |||
| Generic InjectivityAnn Исходный код | |||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: InjectivityAnn -> Rep InjectivityAnn x Источник to :: Rep InjectivityAnn x -> InjectivityAnn Источник | |||||
| Generic Inline Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Lit Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
|
| Generic Loc Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Match Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic ModName Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Модуль Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic ModuleInfo Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: ModuleInfo -> Rep ModuleInfo x Исходный код to :: Rep ModuleInfo x -> ModuleInfo Исходный код | |||||
| Generic Имя Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic ТипИмени Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: NameFlavour -> Rep NameFlavour x Источник to :: Rep NameFlavour x -> NameFlavour Источник | |||||
| Generic NameSpace Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic NamespaceSpecifier Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: NamespaceSpecifier -> Rep NamespaceSpecifier x Источник to :: Rep NamespaceSpecifier x -> NamespaceSpecifier Источник | |||||
| Generic OccName Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Overlap Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Pat Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
|
|
| |||
| Generic PatSynArgs Источник | |||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: PatSynArgs -> Rep PatSynArgs x Источник to :: Rep PatSynArgs x -> PatSynArgs Источник | |||||
| Generic PatSynDir Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Phases Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic PkgName Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Pragma Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
|
|
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Role Source | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic RuleBndr Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: RuleBndr -> Rep RuleBndr x Исходный код to :: Rep RuleBndr x -> RuleBndr Исходный код | |||||
| Generic RuleMatch Исходный код | |||||
Определено в GHC.Internal.TH.Syntax | |||||
| Generic Safety Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic SourceStrictness Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: SourceStrictness -> Rep SourceStrictness x Источник to :: Rep SourceStrictness x -> SourceStrictness Источник | |||||
| Generic SourceUnpackedness Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: SourceUnpackedness -> Rep SourceUnpackedness x Источник to :: Rep SourceUnpackedness x -> SourceUnpackedness Источник | |||||
| Generic Specificity Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: Specificity -> Rep Specificity x Исходный код to :: Rep Specificity x -> Specificity Исходный код | |||||
| Generic Stmt Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic TyLit Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic TySynEqn Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic Type Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
|
|
|
| |||
| Generic TypeFamilyHead Источник | |||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: TypeFamilyHead -> Rep TypeFamilyHead x Источник to :: Rep TypeFamilyHead x -> TypeFamilyHead Источник | |||||
| Generic GeneralCategory Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
|
Методыfrom :: GeneralCategory -> Rep GeneralCategory x Источник to :: Rep GeneralCategory x -> GeneralCategory Источник | |||||
| Generic Ordering Источник | |||||
Определено в GHC.Internal.Generics | |||||
| Generic () Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic Bool Источник | |||||
Определено в GHC.Internal.Generics | |||||
| Generic (Complex a) Исходный код | |||||
Определено в Data.Complex Связанные типы
Методыfrom :: Complex a -> Rep (Complex a) x Исходный код to :: Rep (Complex a) x -> Complex a Исходный код | |||||
| Generic (First a) Исходный код | |||||
Определено в Data.Semigroup Связанные типы
Методыfrom :: First a -> Rep (First a) x Исходный код to :: Rep (First a) x -> First a Исходный код | |||||
| Generic (Last a) Исходный код | |||||
Определено в Data.Semigroup Связанные типы
| |||||
| Generic (Max a) Источник | |||||
Определено в Data.Semigroup Связанные типы
| |||||
| Generic (Min a) Источник | |||||
Определено в Data.Semigroup Связанные типы
| |||||
| Generic (WrappedMonoid m) Источник | |||||
Определено в Data.Semigroup Связанные типы
Методыfrom :: WrappedMonoid m -> Rep (WrappedMonoid m) x Исходный код to :: Rep (WrappedMonoid m) x -> WrappedMonoid m Исходный код | |||||
| Generic (NonEmpty a) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: NonEmpty a -> Rep (NonEmpty a) x Исходный код to :: Rep (NonEmpty a) x -> NonEmpty a Исходный код | |||||
| Generic (Identity a) Исходный код | |||||
Определено в GHC.Internal.Data.Functor.Identity Связанные типы
Методыfrom :: Identity a -> Rep (Identity a) x Исходный код to :: Rep (Identity a) x -> Identity a Исходный код | |||||
| Generic (First a) Исходный код | |||||
Определено в GHC.Internal.Data.Monoid Связанные типы
Методыfrom :: First a -> Rep (First a) x Исходный код to :: Rep (First a) x -> First a Исходный код | |||||
| Generic (Last a) Исходный код | |||||
Определено в GHC.Internal.Data.Monoid Связанные типы
| |||||
| Generic (Down a) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (Dual a) Исходный код | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Generic (Endo a) Исходный код | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Generic (Product a) Исходный код | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
Методыfrom :: Product a -> Rep (Product a) x Исходный код to :: Rep (Product a) x -> Product a Исходный код | |||||
| Generic (Sum a) Исходный код | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Generic (ZipList a) Источник | |||||
Определено в GHC.Internal.Functor.ZipList Связанные типы
| |||||
| Generic (Par1 p) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (TyVarBndr flag) Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Generic (Maybe a) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (Solo a) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic [a] Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (WrappedMonad m a) Источник | |||||
Определено в Control.Applicative Связанные типы
Методыfrom :: WrappedMonad m a -> Rep (WrappedMonad m a) x Источник to :: Rep (WrappedMonad m a) x -> WrappedMonad m a Источник | |||||
| Generic (Arg a b) Источник | |||||
Определено в Data.Semigroup Связанные типы
| |||||
| Generic (Either a b) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (Proxy t) Источник | |||||
Определено в GHC.Internal.Generics | |||||
| Generic (U1 p) Источник | |||||
Определено в GHC.Internal.Generics | |||||
| Generic (V1 p) Исходный код | |||||
Определено в GHC.Internal.Generics | |||||
| Generic (a, b) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (WrappedArrow a b c) Исходный код | |||||
Определено в Control.Applicative Связанные типы
Методыfrom :: WrappedArrow a b c -> Rep (WrappedArrow a b c) x Источник to :: Rep (WrappedArrow a b c) x -> WrappedArrow a b c Источник | |||||
| Generic (Kleisli m a b) Источник | |||||
Определено в GHC.Internal.Control.Arrow Связанные типы
| |||||
| Generic (Const a b) Источник | |||||
Определено в GHC.Internal.Data.Functor.Const Связанные типы
| |||||
| Generic (Ap f a) Источник | |||||
Определено в GHC.Internal.Data.Monoid Связанные типы
| |||||
| Generic (Alt f a) Источник | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Generic (Rec1 f p) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (URec (Ptr ()) p) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (URec Char p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (URec Double p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (URec Float p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (URec Int p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (URec Word p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (a, b, c) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (a, b, c) -> Rep (a, b, c) x Исходный код to :: Rep (a, b, c) x -> (a, b, c) Исходный код | |||||
| Generic (Product f g a) Исходный код | |||||
Определено в Data.Functor.Product Связанные типы
Методыfrom :: Product f g a -> Rep (Product f g a) x Исходный код to :: Rep (Product f g a) x -> Product f g a Исходный код | |||||
| Generic (Sum f g a) Исходный код | |||||
Определено в Data.Functor.Sum Связанные типы
Методыfrom :: Sum f g a -> Rep (Sum f g a) x Исходный код to :: Rep (Sum f g a) x -> Sum f g a Исходный код | |||||
| Generic ((f :*: g) p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (f :*: g) p -> Rep ((f :*: g) p) x Исходный код to :: Rep ((f :*: g) p) x -> (f :*: g) p Исходный код | |||||
| Generic ((f :+: g) p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (f :+: g) p -> Rep ((f :+: g) p) x Исходный код to :: Rep ((f :+: g) p) x -> (f :+: g) p Исходный код | |||||
| Generic (K1 i c p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: K1 i c p -> Rep (K1 i c p) x Исходный код to :: Rep (K1 i c p) x -> K1 i c p Исходный код | |||||
| Generic (a, b, c, d) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (a, b, c, d) -> Rep (a, b, c, d) x Исходный код to :: Rep (a, b, c, d) x -> (a, b, c, d) Исходный код | |||||
| Generic (Compose f g a) Исходный код | |||||
Определено в Data.Functor.Compose Связанные типы
Методыfrom :: Compose f g a -> Rep (Compose f g a) x Исходный код to :: Rep (Compose f g a) x -> Compose f g a Исходный код | |||||
| Generic ((f :.: g) p) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (f :.: g) p -> Rep ((f :.: g) p) x Исходный код to :: Rep ((f :.: g) p) x -> (f :.: g) p Исходный код | |||||
| Generic (M1 i c f p) Source | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (a, b, c, d, e) Source | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (a, b, c, d, e, f) Source | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (a, b, c, d, e, f, g) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic (a, b, c, d, e, f, g, h) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (a, b, c, d, e, f, g, h) -> Rep (a, b, c, d, e, f, g, h) x Исходный код to :: Rep (a, b, c, d, e, f, g, h) x -> (a, b, c, d, e, f, g, h) Исходный код | |||||
| Generic (a, b, c, d, e, f, g, h, i) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (a, b, c, d, e, f, g, h, i) -> Rep (a, b, c, d, e, f, g, h, i) x Исходный код to :: Rep (a, b, c, d, e, f, g, h, i) x -> (a, b, c, d, e, f, g, h, i) Исходный код | |||||
| Generic (a, b, c, d, e, f, g, h, i, j) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (a, b, c, d, e, f, g, h, i, j) -> Rep (a, b, c, d, e, f, g, h, i, j) x Исходный код to :: Rep (a, b, c, d, e, f, g, h, i, j) x -> (a, b, c, d, e, f, g, h, i, j) Исходный код | |||||
| Generic (a, b, c, d, e, f, g, h, i, j, k) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (a, b, c, d, e, f, g, h, i, j, k) -> Rep (a, b, c, d, e, f, g, h, i, j, k) x Исходный код to :: Rep (a, b, c, d, e, f, g, h, i, j, k) x -> (a, b, c, d, e, f, g, h, i, j, k) Исходный код | |||||
| Generic (a, b, c, d, e, f, g, h, i, j, k, l) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (a, b, c, d, e, f, g, h, i, j, k, l) -> Rep (a, b, c, d, e, f, g, h, i, j, k, l) x Исходный код to :: Rep (a, b, c, d, e, f, g, h, i, j, k, l) x -> (a, b, c, d, e, f, g, h, i, j, k, l) Исходный код | |||||
| Generic (a, b, c, d, e, f, g, h, i, j, k, l, m) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom :: (a, b, c, d, e, f, g, h, i, j, k, l, m) -> Rep (a, b, c, d, e, f, g, h, i, j, k, l, m) x Исходный код to :: Rep (a, b, c, d, e, f, g, h, i, j, k, l, m) x -> (a, b, c, d, e, f, g, h, i, j, k, l, m) Исходный код | |||||
| Generic (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
Методыfrom :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> Rep (a, b, c, d, e, f, g, h, i, j, k, l, m, n) x Исходный код to :: Rep (a, b, c, d, e, f, g, h, i, j, k, l, m, n) x -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Исходный код | |
| Generic (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Исходный код | |
Определено в GHC.Internal.Generics | |
Связанные типы
| |||||
Методыfrom :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> Rep (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) x Исходный код to :: Rep (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) x -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Исходный код |
class Generic1 (f :: k -> Тип) where Исходный код
Типы, представляемые в виде * -> * (или типа k -> *, когда PolyKinds включено). Этот класс может быть выведен в GHC с флагом DeriveGeneric.
Экземпляр Generic1 должен удовлетворять следующим законам:
from1 . to1 ≡ id to1 . from1 ≡ id
Связанные типы
type Rep1 (f :: k -> Тип) :: k -> Тип Исходный код
Тип представления обобщенного объекта
Методы
from1 :: forall (a :: k). f a -> Rep1 f a Исходный код
Преобразование из типа данных в его представление
to1 :: forall (a :: k). Rep1 f a -> f a Исходный код
Преобразование из представления в тип данных
Примеры использования
| Generic1 Complex Исходный код | |||||
Определено в Data.Complex Связанные типы
Методыfrom1 :: Complex a -> Rep1 Complex a Исходный код to1 :: Rep1 Complex a -> Complex a Исходный код | |||||
| Generic1 First Исходный код | |||||
Определено в Data.Semigroup Связанные типы
| |||||
| Generic1 Last Исходный код | |||||
Определено в Data.Semigroup Связанные типы
| |||||
| Generic1 Max Исходный код | |||||
Определено в Data.Semigroup Связанные типы
| |||||
| Generic1 Min Источник | |||||
Определено в Data.Semigroup Связанные типы
| |||||
| Generic1 WrappedMonoid Источник | |||||
Определено в Data.Semigroup Связанные типы
Методыfrom1 :: WrappedMonoid a -> Rep1 WrappedMonoid a Источник to1 :: Rep1 WrappedMonoid a -> WrappedMonoid a Источник | |||||
| Generic1 NonEmpty Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: NonEmpty a -> Rep1 NonEmpty a Исходный код to1 :: Rep1 NonEmpty a -> NonEmpty a Исходный код | |||||
| Generic1 Identity Исходный код | |||||
Определено в GHC.Internal.Data.Functor.Identity Связанные типы
Методыfrom1 :: Identity a -> Rep1 Identity a Исходный код to1 :: Rep1 Identity a -> Identity a Исходный код | |||||
| Generic1 First Исходный код | |||||
Определено в GHC.Internal.Data.Monoid Связанные типы
| |||||
| Generic1 Last Исходный код | |||||
Определено в GHC.Internal.Data.Monoid Связанные типы
| |||||
| Generic1 Down Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 Dual Исходный код | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Generic1 Product Исходный код | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Generic1 Sum Источник | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Generic1 ZipList Источник | |||||
Определено в GHC.Internal.Functor.ZipList Связанные типы
| |||||
| Generic1 Par1 Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 Maybe Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 Solo Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 [] Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 (WrappedMonad m :: Type -> Type) Источник | |||||
Определено в Control.Applicative Связанные типы
Методыfrom1 :: WrappedMonad m a -> Rep1 (WrappedMonad m) a Источник to1 :: Rep1 (WrappedMonad m) a -> WrappedMonad m a Источник | |||||
| Generic1 (Arg a :: Type -> Type) Источник | |||||
Определено в Data.Semigroup Связанные типы
| |||||
| Generic1 (Either a :: Тип -> Тип) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 ((,) a :: Тип -> Тип) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: (a, a0) -> Rep1 ((,) a) a0 Исходный код to1 :: Rep1 ((,) a) a0 -> (a, a0) Исходный код | |||||
| Generic1 (Proxy :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics | |||||
| Generic1 (U1 :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics | |||||
| Generic1 (V1 :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics | |||||
| Generic1 (WrappedArrow a b :: Тип -> Тип) Источник | |||||
Определено в Control.Applicative Связанные типы
Методыfrom1 :: WrappedArrow a b a0 -> Rep1 (WrappedArrow a b) a0 Источник to1 :: Rep1 (WrappedArrow a b) a0 -> WrappedArrow a b a0 Источник | |||||
| Generic1 (Kleisli m a :: Тип -> Тип) Источник | |||||
Определено в GHC.Internal.Control.Arrow Связанные типы
| |||||
| Generic1 ((,,) a b :: Тип -> Тип) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: (a, b, a0) -> Rep1 ((,,) a b) a0 Исходный код to1 :: Rep1 ((,,) a b) a0 -> (a, b, a0) Исходный код | |||||
| Generic1 (Const a :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Data.Functor.Const Связанные типы
| |||||
| Generic1 (Ap f :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Data.Monoid Связанные типы
Методыfrom1 :: forall (a :: k). Ap f a -> Rep1 (Ap f) a Исходный код to1 :: forall (a :: k). Rep1 (Ap f) a -> Ap f a Исходный код | |||||
| Generic1 (Alt f :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
Методыfrom1 :: forall (a :: k). Alt f a -> Rep1 (Alt f) a Исходный код to1 :: forall (a :: k). Rep1 (Alt f) a -> Alt f a Исходный код | |||||
| Generic1 (Rec1 f :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: forall (a :: k). Rec1 f a -> Rep1 (Rec1 f) a Исходный код to1 :: forall (a :: k). Rep1 (Rec1 f) a -> Rec1 f a Исходный код | |||||
| Generic1 (URec (Указатель ()) :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 (URec Символ :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 (URec Двойное :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 (URec Float :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 (URec Int :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 (URec Слово :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 ((,,,) a b c :: Тип -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: (a, b, c, a0) -> Rep1 ((,,,) a b c) a0 Исходный код to1 :: Rep1 ((,,,) a b c) a0 -> (a, b, c, a0) Исходный код | |||||
| Generic1 (Product f g :: k -> Тип) Исходный код | |||||
Определено в Data.Functor.Product Связанные типы
Методыfrom1 :: forall (a :: k). Product f g a -> Rep1 (Product f g) a Исходный код to1 :: forall (a :: k). Rep1 (Product f g) a -> Product f g a Исходный код | |||||
| Generic1 (Sum f g :: k -> Тип) Исходный код | |||||
Определено в Data.Functor.Sum Связанные типы
| |||||
| Generic1 (f :*: g :: k -> Тип) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 (f :+: g :: k -> Тип) Источник | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: forall (a :: k). (f :+: g) a -> Rep1 (f :+: g) a Исходный код to1 :: forall (a :: k). Rep1 (f :+: g) a -> (f :+: g) a Исходный код | |||||
| Generic1 (K1 i c :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Generic1 ((,,,,) a b c d :: Тип -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: (a, b, c, d, a0) -> Rep1 ((,,,,) a b c d) a0 Исходный код to1 :: Rep1 ((,,,,) a b c d) a0 -> (a, b, c, d, a0) Исходный код | |||||
| Functor f => Generic1 (Compose f g :: k -> Type) Исходный код | |||||
Определено в Data.Functor.Compose Связанные типы
Методыfrom1 :: forall (a :: k). Compose f g a -> Rep1 (Compose f g) a Исходный код to1 :: forall (a :: k). Rep1 (Compose f g) a -> Compose f g a Исходный код | |||||
| Functor f => Generic1 (f :.: g :: k -> Type) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: forall (a :: k). (f :.: g) a -> Rep1 (f :.: g) a Исходный код to1 :: forall (a :: k). Rep1 (f :.: g) a -> (f :.: g) a Исходный код | |||||
| Generic1 (M1 i c f :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: forall (a :: k). M1 i c f a -> Rep1 (M1 i c f) a Исходный код to1 :: forall (a :: k). Rep1 (M1 i c f) a -> M1 i c f a Исходный код | |||||
| Generic1 ((,,,,,) a b c d e :: Тип -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: (a, b, c, d, e, a0) -> Rep1 ((,,,,,) a b c d e) a0 Исходный код to1 :: Rep1 ((,,,,,) a b c d e) a0 -> (a, b, c, d, e, a0) Исходный код | |||||
| Generic1 ((,,,,,,) a b c d e f :: Тип -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: (a, b, c, d, e, f, a0) -> Rep1 ((,,,,,,) a b c d e f) a0 Исходный код to1 :: Rep1 ((,,,,,,) a b c d e f) a0 -> (a, b, c, d, e, f, a0) Исходный код | |||||
| Generic1 ((,,,,,,,) a b c d e f g :: Тип -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: (a, b, c, d, e, f, g, a0) -> Rep1 ((,,,,,,,) a b c d e f g) a0 Исходный код to1 :: Rep1 ((,,,,,,,) a b c d e f g) a0 -> (a, b, c, d, e, f, g, a0) Исходный код | |||||
| Generic1 ((,,,,,,,,) a b c d e f g h :: Type -> Type) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: (a, b, c, d, e, f, g, h, a0) -> Rep1 ((,,,,,,,,) a b c d e f g h) a0 Исходный код to1 :: Rep1 ((,,,,,,,,) a b c d e f g h) a0 -> (a, b, c, d, e, f, g, h, a0) Исходный код | |||||
| Generic1 ((,,,,,,,,,) a b c d e f g h i :: Тип -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: (a, b, c, d, e, f, g, h, i, a0) -> Rep1 ((,,,,,,,,,) a b c d e f g h i) a0 Исходный код to1 :: Rep1 ((,,,,,,,,,) a b c d e f g h i) a0 -> (a, b, c, d, e, f, g, h, i, a0) Исходный код | |||||
| Generic1 ((,,,,,,,,,,) a b c d e f g h i j :: Type -> Type) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: (a, b, c, d, e, f, g, h, i, j, a0) -> Rep1 ((,,,,,,,,,,) a b c d e f g h i j) a0 Исходный код to1 :: Rep1 ((,,,,,,,,,,) a b c d e f g h i j) a0 -> (a, b, c, d, e, f, g, h, i, j, a0) Исходный код | |||||
| Generic1 ((,,,,,,,,,,,) a b c d e f g h i j k :: Тип -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
Методыfrom1 :: (a, b, c, d, e, f, g, h, i, j, k, a0) -> Rep1 ((,,,,,,,,,,,) a b c d e f g h i j k) a0 Исходный код to1 :: Rep1 ((,,,,,,,,,,,) a b c d e f g h i j k) a0 -> (a, b, c, d, e, f, g, h, i, j, k, a0) Исходный код | |||||
| Generic1 ((,,,,,,,,,,,,) a b c d e f g h i j k l :: Тип -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
Методыfrom1 :: (a, b, c, d, e, f, g, h, i, j, k, l, a0) -> Rep1 ((,,,,,,,,,,,,) a b c d e f g h i j k l) a0 Исходный код to1 :: Rep1 ((,,,,,,,,,,,,) a b c d e f g h i j k l) a0 -> (a, b, c, d, e, f, g, h, i, j, k, l, a0) Исходный код | |
| Generic1 ((,,,,,,,,,,,,,) a b c d e f g h i j k l m :: Type -> Type) Исходный код | |
Определено в GHC.Internal.Generics Связанные типы
| |||||
Методыfrom1 :: (a, b, c, d, e, f, g, h, i, j, k, l, m, a0) -> Rep1 ((,,,,,,,,,,,,,) a b c d e f g h i j k l m) a0 Исходный код to1 :: Rep1 ((,,,,,,,,,,,,,) a b c d e f g h i j k l m) a0 -> (a, b, c, d, e, f, g, h, i, j, k, l, m, a0) Исходный код | |||
| Generic1 ((,,,,,,,,,,,,,,) a b c d e f g h i j k l m n :: Тип -> Тип) Исходный код | |||
Определено в GHC.Internal.Generics Связанные типы
| |||
|
Краткое описание методовfrom1 :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, a0) -> Rep1 ((,,,,,,,,,,,,,,) a b c d e f g h i j k l m n) a0 Source to1 :: Rep1 ((,,,,,,,,,,,,,,) a b c d e f g h i j k l m n) a0 -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, a0) Source |
Оболочка Generic
newtype Generically a Source
Тип данных, экземпляры которого определены обобщенно, используя представление Generic. Generically1 является высокоранговой версией Generically, которая использует Generic1.
Обобщенные экземпляры могут быть выведены через Generically A используя -XDerivingVia.
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DerivingVia #-}
import GHC.Generics (Generic)
data V4 a = V4 a a a a
deriving stock Generic
deriving (Semigroup, Monoid)
via Generically (V4 a)
Это соответствует Semigroup и Monoid экземплярам, определенным путем поэлементного поднятия:
instance Semigroup a => Semigroup (V4 a) where
(<>) :: V4 a -> V4 a -> V4 a
V4 a1 b1 c1 d1 <> V4 a2 b2 c2 d2 =
V4 (a1 <> a2) (b1 <> b2) (c1 <> c2) (d1 <> d2)
instance Monoid a => Monoid (V4 a) where
mempty :: V4 a
mempty = V4 mempty mempty mempty mempty
Исторически это требовало изменения класса типов для включения обобщенных определений методов (-XDefaultSignatures) и вывода его с помощью стратегии anyclass (-XDeriveAnyClass). Наличие типа /via/ как Generically отделяет экземпляр от класса типов.
Since: base-4.17.0.0
Краткое описание конструкторов
| Generically a |
Экземпляры
| (Generic a, Monoid (Rep a ())) => Monoid (Generically a) Source | Since: base-4.17.0.0 |
Определено в GHC.Internal.Generics Краткое описание методовmempty :: Generically a Source mappend :: Generically a -> Generically a -> Generically a Source mconcat :: [Generically a] -> Generically a Source | |
| (Generic a, Semigroup (Rep a ())) => Semigroup (Generically a) Source | Since: base-4.17.0.0 |
Определено в GHC.Internal.Generics Краткое описание методов(<>) :: Generically a -> Generically a -> Generically a Source sconcat :: NonEmpty (Generically a) -> Generically a Source stimes :: Integral b => b -> Generically a -> Generically a Source | |
newtype Generically1 (f :: k -> Type) (a :: k) where Source
Тип, экземпляры которого определены обобщенно, используя представление Generic1. Generically1 является высокоранговой версией Generically, которая использует Generic.
Обобщенные экземпляры могут быть выведены для конструкторов типов через Generically1 F используя -XDerivingVia.
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DerivingVia #-}
import GHC.Generics (Generic)
data V4 a = V4 a a a a
deriving stock (Functor, Generic1)
deriving Applicative
via Generically1 V4
Это соответствует Applicative экземплярам, определенным путем поэлементного поднятия:
instance Applicative V4 where
pure :: a -> V4 a
pure a = V4 a a a a
liftA2 :: (a -> b -> c) -> (V4 a -> V4 b -> V4 c)
liftA2 (·) (V4 a1 b1 c1 d1) (V4 a2 b2 c2 d2) =
V4 (a1 · a2) (b1 · b2) (c1 · c2) (d1 · d2)
Исторически это требовало изменения класса типов для включения обобщенных определений методов (-XDefaultSignatures) и вывода его с помощью стратегии anyclass (-XDeriveAnyClass). Наличие типа /via/ как Generically1 отделяет экземпляр от класса типов.
Since: base-4.17.0.0
Краткое описание конструкторов
| Generically1 :: forall {k} (f :: k -> Type) (a :: k). f a -> Generically1 f a |
Примеры
| (Generic1 f, Eq1 (Rep1 f)) => Eq1 (Generically1 f) Исходный код | С момента: base-4.17.0.0 |
Определено в Data.Functor.Classes МетодыliftEq :: (a -> b -> Bool) -> Generically1 f a -> Generically1 f b -> Bool Исходный код | |
| (Generic1 f, Ord1 (Rep1 f)) => Ord1 (Generically1 f) Исходный код | С момента: base-4.17.0.0 |
Определено в Data.Functor.Classes МетодыliftCompare :: (a -> b -> Ordering) -> Generically1 f a -> Generically1 f b -> Ordering Исходный код | |
| (Generic1 f, Alternative (Rep1 f)) => Alternative (Generically1 f) Исходный код | С момента: base-4.17.0.0 |
Определено в GHC.Internal.Generics Методыempty :: Generically1 f a Исходный код (<|>) :: Generically1 f a -> Generically1 f a -> Generically1 f a Исходный код some :: Generically1 f a -> Generically1 f [a] Исходный код many :: Generically1 f a -> Generically1 f [a] Исходный код | |
| (Generic1 f, Applicative (Rep1 f)) => Applicative (Generically1 f) Исходный код | С момента: base-4.17.0.0 |
Определено в GHC.Internal.Generics Методыpure :: a -> Generically1 f a Исходный код (<*>) :: Generically1 f (a -> b) -> Generically1 f a -> Generically1 f b Исходный код liftA2 :: (a -> b -> c) -> Generically1 f a -> Generically1 f b -> Generically1 f c Исходный код (*>) :: Generically1 f a -> Generically1 f b -> Generically1 f b Исходный код (<*) :: Generically1 f a -> Generically1 f b -> Generically1 f a Исходный код | |
| (Generic1 f, Functor (Rep1 f)) => Functor (Generically1 f) Исходный код | С момента: base-4.17.0.0 |
Определено в GHC.Internal.Generics Методыfmap :: (a -> b) -> Generically1 f a -> Generically1 f b Исходный код (<$) :: a -> Generically1 f b -> Generically1 f a Исходный код | |
| (Generic1 f, Eq (Rep1 f a)) => Eq (Generically1 f a) Исходный код | С момента: base-4.18.0.0 |
Определено в GHC.Internal.Generics Методыравно :: Generically1 f a -> Generically1 f a -> Bool Исходный код не равно :: Generically1 f a -> Generically1 f a -> Bool Исходный код | |
| (Generic1 f, Ord (Rep1 f a)) => Ord (Generically1 f a) Исходный код | С момента: base-4.18.0.0 |
Определено в GHC.Internal.Generics Методыcompare :: Generically1 f a -> Generically1 f a -> Ordering Исходный код меньше :: Generically1 f a -> Generically1 f a -> Bool Исходный код меньше или равно :: Generically1 f a -> Generically1 f a -> Bool Исходный код больше :: Generically1 f a -> Generically1 f a -> Bool Исходный код больше или равно :: Generically1 f a -> Generically1 f a -> Bool Исходный код максимум :: Generically1 f a -> Generically1 f a -> Generically1 f a Исходный код минимум :: Generically1 f a -> Generically1 f a -> Generically1 f a Исходный код | |
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/GHC-Generics.html