Spec-Zone.ru › Haskell 8

Data.Functor.Classes

Авторские права (c) Ross Paterson 2013
Лицензия BSD-style (см. файл LICENSE)
Поддержка libraries@haskell.org
Стабильность экспериментальная
Переносимость переносимая
Safe Haskell Безопасный
Язык Haskell2010

Содержание

  • Подъемы классов Prelude
    • Для унарных конструкторов
    • Для бинарных конструкторов
  • Вспомогательные функции
    • Устаревшие вспомогательные функции

Описание

Подъемы классов Prelude Eq, Ord, Read и Show к унарным и бинарным конструкторам типов.

Эти классы необходимы для выражения ограничений на аргументы трансформаторов в переносимом Haskell. Таким образом, для нового трансформатора T, можно написать такие экземпляры

instance (Eq1 f) => Eq1 (T f) where ...
instance (Ord1 f) => Ord1 (T f) where ...
instance (Read1 f) => Read1 (T f) where ...
instance (Show1 f) => Show1 (T f) where ...

Если эти экземпляры могут быть определены, определение экземпляров базовых классов является механическим:

instance (Eq1 f, Eq a) => Eq (T f a) where (==) = eq1
instance (Ord1 f, Ord a) => Ord (T f a) where compare = compare1
instance (Read1 f, Read a) => Read (T f a) where
  readPrec     = readPrec1
  readListPrec = readListPrecDefault
instance (Show1 f, Show a) => Show (T f a) where showsPrec = showsPrec1

С момента: base-4.9.0.0

Подъемы классов Prelude

Для унарных конструкторов

class Eq1 f where Исходный код

Подъем класса Eq к унарным конструкторам типов.

С момента: base-4.9.0.0

Методы

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

Подъем проверки на равенство через конструктор типа.

Функция обычно применяется к функции равенства, но более общий тип гарантирует, что реализация использует ее для сравнения элементов первого контейнера с элементами второго.

С момента: base-4.9.0.0

Экземпляры
Подробности о реализациях
Eq1 []

С версии: base-4.9.0.0

Подробности о реализации

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

Методы

liftEq :: (a -> b -> Bool) -> [a] -> [b] -> Bool Source

Eq1 Maybe

С версии: base-4.9.0.0

Подробности о реализации

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

Методы

liftEq :: (a -> b -> Bool) -> Maybe a -> Maybe b -> Bool Source

Eq1 NonEmpty

С версии: base-4.10.0.0

Подробности о реализации

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

Методы

liftEq :: (a -> b -> Bool) -> NonEmpty a -> NonEmpty b -> Bool Source

Eq1 Down

С версии: base-4.12.0.0

Подробности о реализации

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

Методы

liftEq :: (a -> b -> Bool) -> Down a -> Down b -> Bool Source

Eq1 Identity

С версии: base-4.9.0.0

Подробности о реализации

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

Методы

liftEq :: (a -> b -> Bool) -> Identity a -> Identity b -> Bool Source

Eq a => Eq1 (Either a)

С версии: base-4.9.0.0

Подробности о реализации

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

Методы

liftEq :: (a0 -> b -> Bool) -> Either a a0 -> Either a b -> Bool Source

Eq a => Eq1 ((,) a)

С версии: base-4.9.0.0

Подробности о реализации

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

Методы

liftEq :: (a0 -> b -> Bool) -> (a, a0) -> (a, b) -> Bool Source

Eq1 (Proxy :: Type -> Type)

С версии: base-4.9.0.0

Подробности о реализации

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

Методы

liftEq :: (a -> b -> Bool) -> Proxy a -> Proxy b -> Bool Source

Eq a => Eq1 (Const a :: Type -> Type)

С версии: base-4.9.0.0

Подробности о реализации

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

Методы

liftEq :: (a0 -> b -> Bool) -> Const a a0 -> Const a b -> Bool Source

(Eq1 f, Eq1 g) => Eq1 (Sum f g)

С версии: base-4.9.0.0

Подробности о реализации

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

Методы

liftEq :: (a -> b -> Bool) -> Sum f g a -> Sum f g b -> Bool Source

(Eq1 f, Eq1 g) => Eq1 (Product f g)

С версии: base-4.9.0.0

Подробности о реализации

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

Методы

liftEq :: (a -> b -> Bool) -> Product f g a -> Product f g b -> Bool Source

(Eq1 f, Eq1 g) => Eq1 (Compose f g)

Since: base-4.9.0.0

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

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

Методы

liftEq :: (a -> b -> Bool) -> Compose f g a -> Compose f g b -> Bool Исходный код

eq1 :: (Eq1 f, Eq a) => f a -> f a -> Bool Исходный код

Поднимает стандартную (==) функцию через конструктор типа.

Since: base-4.9.0.0

class Eq1 f => Ord1 f where Исходный код

Поднятие класса Ord к унарным конструкторам типов.

Since: base-4.9.0.0

Методы

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

Поднимает функцию compare через конструктор типа.

Функция обычно применяется к функции сравнения, но более общий тип гарантирует, что реализация использует ее для сравнения элементов первого контейнера с элементами второго.

Since: base-4.9.0.0

Экземпляры
Подробности о экземплярах
Ord1 []

С версии: base-4.9.0.0

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

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

Методы

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

Ord1 Maybe

С версии: base-4.9.0.0

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

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

Методы

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

Ord1 NonEmpty

С версии: base-4.10.0.0

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

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

Методы

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

Ord1 Down

С версии: base-4.12.0.0

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

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

Методы

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

Ord1 Identity

С версии: base-4.9.0.0

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

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

Методы

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

Ord a => Ord1 (Either a)

С версии: base-4.9.0.0

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

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

Методы

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

Ord a => Ord1 ((,) a)

С версии: base-4.9.0.0

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

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

Методы

liftCompare :: (a0 -> b -> Ordering) -> (a, a0) -> (a, b) -> Ordering Исходный код

Ord1 (Proxy :: Type -> Type)

С версии: base-4.9.0.0

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

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

Методы

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

Ord a => Ord1 (Const a :: Type -> Type)

С версии: base-4.9.0.0

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

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

Методы

liftCompare :: (a0 -> b -> Ordering) -> Const a a0 -> Const a b -> Ordering Исходный код

(Ord1 f, Ord1 g) => Ord1 (Sum f g)

С версии: base-4.9.0.0

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

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

Методы

liftCompare :: (a -> b -> Ordering) -> Sum f g a -> Sum f g b -> Ordering Исходный код

(Ord1 f, Ord1 g) => Ord1 (Product f g)

С версии: base-4.9.0.0

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

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

Методы

liftCompare :: (a -> b -> Порядок) -> Product f g a -> Product f g b -> Порядок Исходный код

(Ord1 f, Ord1 g) => Ord1 (Compose f g)

С момента: base-4.9.0.0

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

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

Методы

liftCompare :: (a -> b -> Порядок) -> Compose f g a -> Compose f g b -> Порядок Исходный код

compare1 :: (Ord1 f, Ord a) => f a -> f a -> Порядок Исходный код

Поднять стандартную compare функцию через конструктор типа.

С момента: base-4.9.0.0

class Read1 f where Исходный код

Поднятие класса Read к унарным конструкторам типов.

Как liftReadsPrec, так и liftReadPrec существуют для соответствия интерфейсу, предоставленному в классе Read типов, но рекомендуется реализовывать экземпляры Read1 с использованием liftReadPrec, а не liftReadsPrec, так как первое более эффективно, чем последнее. Например:

instance Read1 T where
  liftReadPrec     = ...
  liftReadListPrec = liftReadListPrecDefault

Дополнительную информацию можно найти в документации для класса Read.

С момента: base-4.9.0.0

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

liftReadsPrec | liftReadPrec

Методы

liftReadsPrec :: (Целое -> ReadS a) -> ReadS [a] -> Целое -> ReadS (f a) Исходный код

Функция readsPrec для применения конструктора типа на основе функций readsPrec и readList для типа аргумента.

С момента: base-4.9.0.0

liftReadList :: (Целое -> ReadS a) -> ReadS [a] -> ReadS [f a] Исходный код

Функция readList для применения конструктора типа на основе функций readsPrec и readList для типа аргумента. Реализация по умолчанию с использованием стандартного синтаксиса списков верна для большинства типов.

С момента: base-4.9.0.0

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

Функция readPrec для применения конструктора типа на основе функций readPrec и readListPrec для типа аргумента.

С момента: base-4.10.0.0

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [f a] Исходный код

Функция readListPrec для применения конструктора типа на основе функций readPrec и readListPrec для типа аргумента.

Определение по умолчанию использует liftReadList. Экземпляры, которые определяют liftReadPrec, также должны определять liftReadListPrec как liftReadListPrecDefault.

С момента: base-4.10.0.0

Примеры реализации
Подробности примеров реализации
Read1 []

С момента: base-4.9.0.0

Подробности реализации

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

Методы

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

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

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [a] Исходный код

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [[a]] Исходный код

Read1 Maybe

С момента: base-4.9.0.0

Подробности реализации

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

Методы

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Maybe a) Исходный код

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Maybe a] Исходный код

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

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Maybe a] Исходный код

Read1 NonEmpty

С момента: base-4.10.0.0

Подробности реализации

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

Методы

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (NonEmpty a) Исходный код

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [NonEmpty a] Исходный код

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

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

Read1 Down

С момента: base-4.12.0.0

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

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

Методы

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Down a) Источник

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Down a] Источник

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Down a) Источник

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Down a] Источник

Read1 Identity

С тех пор как: base-4.9.0.0

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

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

Методы

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Identity a) Источник

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Identity a] Источник

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Identity a) Источник

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Identity a] Источник

Read a => Read1 (Either a)

С тех пор как: base-4.9.0.0

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

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

Методы

liftReadsPrec :: (Int -> ReadS a0) -> ReadS [a0] -> Int -> ReadS (Either a a0) Источник

liftReadList :: (Int -> ReadS a0) -> ReadS [a0] -> ReadS [Either a a0] Источник

liftReadPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec (Either a a0) Источник

liftReadListPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec [Either a a0] Источник

Read a => Read1 ((,) a)

С тех пор как: base-4.9.0.0

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

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

Методы

liftReadsPrec :: (Int -> ReadS a0) -> ReadS [a0] -> Int -> ReadS (a, a0) Исходный код

liftReadList :: (Int -> ReadS a0) -> ReadS [a0] -> ReadS [(a, a0)] Исходный код

liftReadPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec (a, a0) Исходный код

liftReadListPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec [(a, a0)] Исходный код

Read1 (Proxy :: Тип -> Тип)

С момента: base-4.9.0.0

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

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

Методы

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Proxy a) Исходный код

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Proxy a] Исходный код

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

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Proxy a] Исходный код

Read a => Read1 (Const a :: Тип -> Тип)

С момента: base-4.9.0.0

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

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

Методы

liftReadsPrec :: (Int -> ReadS a0) -> ReadS [a0] -> Int -> ReadS (Const a a0) Исходный код

liftReadList :: (Int -> ReadS a0) -> ReadS [a0] -> ReadS [Const a a0] Исходный код

liftReadPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec (Const a a0) Исходный код

liftReadListPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec [Const a a0] Исходный код

(Read1 f, Read1 g) => Read1 (Sum f g)

С момента: base-4.9.0.0

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

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

Методы

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Sum f g a) Исходный код

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Sum f g a] Исходный код

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Sum f g a) Исходный код

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Sum f g a] Исходный код

(Read1 f, Read1 g) => Read1 (Product f g)

С версии: base-4.9.0.0

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

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

Методы

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Product f g a) Исходный код

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Product f g a] Исходный код

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Product f g a) Исходный код

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Product f g a] Исходный код

(Read1 f, Read1 g) => Read1 (Compose f g)

С версии: base-4.9.0.0

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

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

Методы

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Compose f g a) Исходный код

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Compose f g a] Исходный код

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Compose f g a) Исходный код

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Compose f g a] Исходный код

readsPrec1 :: (Read1 f, Read a) => Int -> ReadS (f a) Исходный код

Поднять стандартные функции readsPrec и readList через конструктор типа.

С версии: base-4.9.0.0

readPrec1 :: (Read1 f, Read a) => ReadPrec (f a) Исходный код

Поднять стандартные функции readPrec и readListPrec через конструктор типа.

С версии: base-4.10.0.0

liftReadListDefault :: Read1 f => (Int -> ReadS a) -> ReadS [a] -> ReadS [f a] Исходный код

Возможная замена определения для метода liftReadList. Это необходимо только для экземпляров Read1, где liftReadListPrec не определено как liftReadListPrecDefault.

С момента выпуска: base-4.10.0.0

liftReadListPrecDefault :: Read1 f => ReadPrec a -> ReadPrec [a] -> ReadPrec [f a] Источник

Возможная замена определения для метода liftReadListPrec, определённого с использованием liftReadPrec.

С момента выпуска: base-4.10.0.0

class Show1 f where Источник

Поднятие класса Show к унарным конструкторам типов.

С момента выпуска: base-4.9.0.0

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

liftShowsPrec

Методы

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> f a -> ShowS Источник

Функция showsPrec для применения конструктора типов, основанная на функциях showsPrec и showList для типа аргумента.

С момента выпуска: base-4.9.0.0

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [f a] -> ShowS Источник

Функция showList для применения конструктора типов, основанная на функциях showsPrec и showList для типа аргумента. Значение по умолчанию, использующее стандартную синтаксическую конструкцию списка, верно для большинства типов.

С момента выпуска: base-4.9.0.0

Экземпляры
Подробности об экземплярах
Show1 []

С версии: base-4.9.0.0

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

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

Методы

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> [a] -> ShowS Источник

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [[a]] -> ShowS Источник

Show1 Maybe

С версии: base-4.9.0.0

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

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

Методы

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Maybe a -> ShowS Источник

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Maybe a] -> ShowS Источник

Show1 NonEmpty

С версии: base-4.10.0.0

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

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

Методы

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> NonEmpty a -> ShowS Источник

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [NonEmpty a] -> ShowS Источник

Show1 Down

С версии: base-4.12.0.0

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

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

Методы

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Down a -> ShowS Источник

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Down a] -> ShowS Источник

Show1 Identity

С версии: base-4.9.0.0

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

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

Методы

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Identity a -> ShowS Источник

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Identity a] -> ShowS Источник

Show a => Show1 (Either a)

С версии: base-4.9.0.0

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

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

Методы

liftShowsPrec :: (Int -> a0 -> ShowS) -> ([a0] -> ShowS) -> Int -> Either a a0 -> ShowS Источник

liftShowList :: (Int -> a0 -> ShowS) -> ([a0] -> ShowS) -> [Either a a0] -> ShowS Источник

Show a => Show1 ((,) a)

С версии: base-4.9.0.0

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

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

Методы

liftShowsPrec :: (Целое -> a0 -> ShowS) -> ([a0] -> ShowS) -> Целое -> (a, a0) -> ShowS Исходный код

liftShowList :: (Целое -> a0 -> ShowS) -> ([a0] -> ShowS) -> [(a, a0)] -> ShowS Исходный код

Show1 (Proxy :: Тип -> Тип)

С момента: base-4.9.0.0

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

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

Методы

liftShowsPrec :: (Целое -> a -> ShowS) -> ([a] -> ShowS) -> Целое -> Proxy a -> ShowS Исходный код

liftShowList :: (Целое -> a -> ShowS) -> ([a] -> ShowS) -> [Proxy a] -> ShowS Исходный код

Show a => Show1 (Const a :: Тип -> Тип)

С момента: base-4.9.0.0

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

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

Методы

liftShowsPrec :: (Целое -> a0 -> ShowS) -> ([a0] -> ShowS) -> Целое -> Const a a0 -> ShowS Исходный код

liftShowList :: (Целое -> a0 -> ShowS) -> ([a0] -> ShowS) -> [Const a a0] -> ShowS Исходный код

(Show1 f, Show1 g) => Show1 (Sum f g)

С момента: base-4.9.0.0

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

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

Методы

liftShowsPrec :: (Целое -> a -> ShowS) -> ([a] -> ShowS) -> Целое -> Sum f g a -> ShowS Исходный код

liftShowList :: (Целое -> a -> ShowS) -> ([a] -> ShowS) -> [Sum f g a] -> ShowS Исходный код

(Show1 f, Show1 g) => Show1 (Product f g)

С момента: base-4.9.0.0

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

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

Методы

liftShowsPrec :: (Целое -> a -> ShowS) -> ([a] -> ShowS) -> Целое -> Product f g a -> ShowS Исходный код

liftShowList :: (Целое -> a -> ShowS) -> ([a] -> ShowS) -> [Product f g a] -> ShowS Исходный код

(Show1 f, Show1 g) => Show1 (Compose f g)

С момента: base-4.9.0.0

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

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

Методы

liftShowsPrec :: (Целое -> a -> ShowS) -> ([a] -> ShowS) -> Целое -> Compose f g a -> ShowS Исходный код

liftShowList :: (Целое -> a -> ShowS) -> ([a] -> ShowS) -> [Compose f g a] -> ShowS Исходный код

showsPrec1 :: (Show1 f, Show a) => Целое -> f a -> ShowS Исходный код

Поднимает стандартные функции showsPrec и showList через конструктор типа.

С момента: base-4.9.0.0

Для бинарных конструкторов

class Eq2 f where Исходный код

Поднятие класса Eq к бинарным конструкторам типов.

С момента: base-4.9.0.0

Методы

liftEq2 :: (a -> b -> Bool) -> (c -> d -> Bool) -> f a c -> f b d -> Bool Исходный код

Поднять проверку на равенство через конструктор типа.

Функция обычно применяется к функциям равенства, но более общий тип гарантирует, что реализация использует их для сравнения элементов первого контейнера с элементами второго.

С момента: base-4.9.0.0

Экземпляры
Подробности экземпляров
Eq2 Either

С момента: base-4.9.0.0

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

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

Методы

liftEq2 :: (a -> b -> Bool) -> (c -> d -> Bool) -> Either a c -> Either b d -> Bool Исходный код

Eq2 (,)

С момента: base-4.9.0.0

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

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

Методы

liftEq2 :: (a -> b -> Bool) -> (c -> d -> Bool) -> (a, c) -> (b, d) -> Bool Исходный код

Eq2 (Const :: Type -> Type -> Type)

С момента: base-4.9.0.0

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

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

Методы

liftEq2 :: (a -> b -> Bool) -> (c -> d -> Bool) -> Const a c -> Const b d -> Bool Исходный код

eq2 :: (Eq2 f, Eq a, Eq b) => f a b -> f a b -> Bool Исходный код

Поднять стандартную (==) функцию через конструктор типа.

С момента: base-4.9.0.0

class Eq2 f => Ord2 f where Исходный код

Поднятие класса Ord к бинарным конструкторам типов.

С момента: base-4.9.0.0

Методы

liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> f a c -> f b d -> Ordering Исходный код

Поднятие функций compare через конструктор типа.

Функция обычно применяется к функциям сравнения, но более общий тип гарантирует, что реализация использует их для сравнения элементов первого контейнера с элементами второго.

С момента: base-4.9.0.0

Экземпляры
Подробности экземпляров
Ord2 Either

С момента: base-4.9.0.0

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

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

Методы

liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> Either a c -> Either b d -> Ordering Исходный код

Ord2 (,)

С момента: base-4.9.0.0

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

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

Методы

liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> (a, c) -> (b, d) -> Ordering Исходный код

Ord2 (Const :: Type -> Type -> Type)

С момента: base-4.9.0.0

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

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

Методы

liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> Const a c -> Const b d -> Ordering Исходный код

compare2 :: (Ord2 f, Ord a, Ord b) => f a b -> f a b -> Ordering Исходный код

Поднять стандартную compare функцию через конструктор типа.

С момента: base-4.9.0.0

class Read2 f where Исходный код

Поднятие класса Read к бинарным конструкторам типов.

Как liftReadsPrec2, так и liftReadPrec2 существуют для соответствия интерфейсу, предоставляемому в классе Read типов, но рекомендуется реализовывать экземпляры Read2 с использованием liftReadPrec2 вместо liftReadsPrec2, поскольку первый вариант более эффективен, чем второй. Например:

instance Read2 T where
  liftReadPrec2     = ...
  liftReadListPrec2 = liftReadListPrec2Default

Дополнительную информацию см. в документации к классу Read. @с момента 4.9.0.0

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

liftReadsPrec2 | liftReadPrec2

Методы

liftReadsPrec2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> Int -> ReadS (f a b) Source

readsPrec функция для применения конструктора типа на основе readsPrec и readList функций для типов аргументов.

С момента: base-4.9.0.0

liftReadList2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [f a b] Source

readList функция для применения конструктора типа на основе readsPrec и readList функций для типов аргументов. Реализация по умолчанию, использующая стандартную синтаксическую конструкцию списков, верна для большинства типов.

С момента: base-4.9.0.0

liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec (f a b) Source

readPrec функция для применения конструктора типа на основе readPrec и readListPrec функций для типов аргументов.

С момента: base-4.10.0.0

liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [f a b] Source

readListPrec функция для применения конструктора типа на основе readPrec и readListPrec функций для типов аргументов.

Определение по умолчанию использует liftReadList2. Экземпляры, которые определяют liftReadPrec2, должны также определять liftReadListPrec2 как liftReadListPrec2Default.

С момента: base-4.10.0.0

Примеры
Подробности примеров
Read2 Either

С момента: base-4.9.0.0

Подробности примера

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

Методы

liftReadsPrec2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> Int -> ReadS (Either a b) Исходный код

liftReadList2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [Either a b] Исходный код

liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec (Either a b) Исходный код

liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [Either a b] Исходный код

Read2 (,)

С момента: base-4.9.0.0

Подробности примера

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

Методы

liftReadsPrec2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> Int -> ReadS (a, b) Исходный код

liftReadList2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [(a, b)] Исходный код

liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec (a, b) Исходный код

liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [(a, b)] Исходный код

Read2 (Const :: Type -> Type -> Type)

С момента: base-4.9.0.0

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

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

Методы

liftReadsPrec2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> Int -> ReadS (Const a b) Источник

liftReadList2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [Const a b] Источник

liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec (Const a b) Источник

liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [Const a b] Источник

readsPrec2 :: (Read2 f, Read a, Read b) => Int -> ReadS (f a b) Источник

Поднять стандартную readsPrec функцию через конструктор типа.

С момента: base-4.9.0.0

readPrec2 :: (Read2 f, Read a, Read b) => ReadPrec (f a b) Источник

Поднять стандартную readPrec функцию через конструктор типа.

С момента: base-4.10.0.0

liftReadList2Default :: Read2 f => (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [f a b] Источник

Возможная замена определения для метода liftReadList2. Это необходимо только для экземпляров Read2, где liftReadListPrec2 не определена как liftReadListPrec2Default.

С момента: base-4.10.0.0

liftReadListPrec2Default :: Read2 f => ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [f a b] Источник

Возможная замена определения для метода liftReadListPrec2, определённого с использованием liftReadPrec2.

С момента: base-4.10.0.0

class Show2 f where Источник

Поднятие класса Show к бинарным конструкторам типов.

С момента: base-4.9.0.0

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

liftShowsPrec2

Методы

liftShowsPrec2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> Int -> f a b -> ShowS Источник

Функция showsPrec для применения конструктора типа, основанного на функциях showsPrec и showList для типов аргументов.

С момента: base-4.9.0.0

liftShowList2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> [f a b] -> ShowS Источник

Функция showList для применения конструктора типа, основанного на функциях showsPrec и showList для типов аргументов. Реализация по умолчанию с использованием стандартной синтаксиса списков верна для большинства типов.

С момента: base-4.9.0.0

Примеры использования
Подробности примеров использования
Show2 Either

С версии: base-4.9.0.0

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

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

Методы

liftShowsPrec2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> Int -> Either a b -> ShowS Исходный код

liftShowList2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> [Either a b] -> ShowS Исходный код

Show2 (,)

С версии: base-4.9.0.0

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

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

Методы

liftShowsPrec2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> Int -> (a, b) -> ShowS Исходный код

liftShowList2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> [(a, b)] -> ShowS Исходный код

Show2 (Const :: Тип -> Тип -> Тип)

С версии: base-4.9.0.0

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

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

Методы

liftShowsPrec2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> Int -> Const a b -> ShowS Исходный код

liftShowList2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> [Const a b] -> ShowS Исходный код

showsPrec2 :: (Show2 f, Show a, Show b) => Int -> f a b -> ShowS Исходный код

Поднимает стандартную showsPrec функцию через конструктор типа.

С версии: base-4.9.0.0

Вспомогательные функции

Эти функции могут использоваться для сборки Read и Show примеров использования для новых алгебраических типов. Например, при определении

data T f a = Zero a | One (f a) | Two a (f a)

стандартный Read1 пример использования может быть определён как

instance (Read1 f) => Read1 (T f) where
    liftReadPrec rp rl = readData $
        readUnaryWith rp "Zero" Zero <|>
        readUnaryWith (liftReadPrec rp rl) "One" One <|>
        readBinaryWith rp (liftReadPrec rp rl) "Two" Two
    liftReadListPrec = liftReadListPrecDefault

и соответствующий Show1 пример использования как

instance (Show1 f) => Show1 (T f) where
    liftShowsPrec sp _ d (Zero x) =
        showsUnaryWith sp "Zero" d x
    liftShowsPrec sp sl d (One x) =
        showsUnaryWith (liftShowsPrec sp sl) "One" d x
    liftShowsPrec sp sl d (Two x y) =
        showsBinaryWith sp (liftShowsPrec sp sl) "Two" d x y

readsData :: (Строка -> ReadS a) -> Int -> ReadS a Исходный код

readsData p d — это парсер для типов данных, где каждый вариант начинается с конструктора данных. Он анализирует конструктор и передает его в p. Парсеры для различных конструкторов могут быть построены с помощью readsUnary, readsUnary1 и readsBinary1, и объединены с mappend из класса Monoid.

С версии: base-4.9.0.0

readData :: ReadPrec a -> ReadPrec a Исходный код

readData p — это парсер для типов данных, где каждый вариант начинается с конструктора данных. Он анализирует конструктор и передает его в p. Парсеры для различных конструкторов могут быть построены с помощью readUnaryWith и readBinaryWith, и объединены с (<|>) из класса Alternative.

С версии: base-4.10.0.0

readsUnaryWith :: (Int -> ReadS a) -> Строка -> (a -> t) -> Строка -> ReadS t Исходный код

readsUnaryWith rp n c n' соответствует имени одноместного конструктора данных, а затем анализирует его аргумент с помощью rp.

С версии: base-4.9.0.0

readUnaryWith :: ReadPrec a -> Строка -> (a -> t) -> ReadPrec t Исходный код

readUnaryWith rp n c' соответствует имени одноместного конструктора данных, а затем анализирует его аргумент с помощью rp.

С версии: base-4.10.0.0

readsBinaryWith :: (Int -> ReadS a) -> (Int -> ReadS b) -> String -> (a -> b -> t) -> String -> ReadS t Source

readsBinaryWith rp1 rp2 n c n' соответствует имени бинарного конструктора данных, а затем анализирует его аргументы с помощью rp1 и rp2 соответственно.

Since: base-4.9.0.0

readBinaryWith :: ReadPrec a -> ReadPrec b -> String -> (a -> b -> t) -> ReadPrec t Source

readBinaryWith rp1 rp2 n c' соответствует имени бинарного конструктора данных, а затем анализирует его аргументы с помощью rp1 и rp2 соответственно.

Since: base-4.10.0.0

showsUnaryWith :: (Int -> a -> ShowS) -> String -> Int -> a -> ShowS Source

showsUnaryWith sp n d x генерирует строковое представление унарного конструктора данных с именем n и аргументом x, в контексте приоритета d.

Since: base-4.9.0.0

showsBinaryWith :: (Int -> a -> ShowS) -> (Int -> b -> ShowS) -> String -> Int -> a -> b -> ShowS Source

showsBinaryWith sp1 sp2 n d x y генерирует строковое представление бинарного конструктора данных с именем n и аргументами x и y, в контексте приоритета d.

Since: base-4.9.0.0

Устаревшие вспомогательные функции

readsUnary :: Read a => String -> (a -> t) -> String -> ReadS t Source

Устаревшая: Используйте readsUnaryWith для определения liftReadsPrec

readsUnary n c n' соответствует имени унарного конструктора данных, а затем анализирует его аргумент с помощью readsPrec.

Since: base-4.9.0.0

readsUnary1 :: (Read1 f, Read a) => String -> (f a -> t) -> String -> ReadS t Source

Устаревшая: Используйте readsUnaryWith для определения liftReadsPrec

readsUnary1 n c n' соответствует имени унарного конструктора данных, а затем анализирует его аргумент с помощью readsPrec1.

Since: base-4.9.0.0

readsBinary1 :: (Read1 f, Read1 g, Read a) => String -> (f a -> g a -> t) -> String -> ReadS t Source

Устаревшая: Используйте readsBinaryWith для определения liftReadsPrec

readsBinary1 n c n' соответствует имени бинарного конструктора данных, а затем анализирует его аргументы с помощью readsPrec1.

Since: base-4.9.0.0

showsUnary :: Show a => String -> Int -> a -> ShowS Source

Устаревшая: Используйте showsUnaryWith для определения liftShowsPrec

showsUnary n d x генерирует строковое представление унарного конструктора данных с именем n и аргументом x, в контексте приоритета d.

Since: base-4.9.0.0

showsUnary1 :: (Show1 f, Show a) => String -> Int -> f a -> ShowS Source

Устаревшая: Используйте showsUnaryWith для определения liftShowsPrec

showsUnary1 n d x генерирует строковое представление унарного конструктора данных с именем n и аргументом x, в контексте приоритета d.

Since: base-4.9.0.0

showsBinary1 :: (Show1 f, Show1 g, Show a) => String -> Int -> f a -> g a -> ShowS Source

Устаревшая: Используйте showsBinaryWith для определения liftShowsPrec

showsBinary1 n d x y генерирует строковое представление бинарного конструктора данных с именем n и аргументами x и y, в контексте приоритета d.

Since: base-4.9.0.0

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/Data-Functor-Classes.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API