Spec-Zone.ru › Haskell 8

Data.Typeable

Авторские права (c) Университет Глазго, CWI 2001--2004
Лицензия BSD-стиль (см. файл libraries/base/LICENSE)
Поддерживающий libraries@haskell.org
Устойчивость экспериментальная
Переносимость переносимая
Безопасный Haskell Надёжный
Язык Haskell2010

Содержание

  • Класс Typeable
  • Пропозициональное равенство
  • Безопасный приведение типов
  • Обобщённые приведения типов для типов высшего порядка
  • Канонический тип прокси
  • Представления типов
  • Наблюдение за представлениями типов
  • Конструкторы типов
  • Для обратной совместимости

Описание

Класс Typeable в некоторой степени реифицирует типы, сопоставляя представления типов с типами. Эти представления типов можно сравнивать, и, в свою очередь, можно определить операцию безопасного приведения типов. Для этого небезопасное приведение типов защищено проверкой на эквивалентность типов (представлений). Модуль Data.Dynamic использует Typeable для реализации динамики. Модуль Data.Data использует Typeable и безопасное приведение типов (но не динамику) для поддержки стиля «Scrap your boilerplate» обобщённого программирования.

Примечания по совместимости

Начиная с GHC 8.2, GHC поддерживает индексированные типом представления типов. Data.Typeable предоставляет представления типов, квалифицированные по этому индексу, обеспечивая интерфейс, очень похожий на понятие Typeable, представленное в предыдущих выпусках. Для индексированного типом интерфейса см. Type.Reflection.

Начиная с GHC 7.10, для всех типов автоматически выводятся экземпляры Typeable. Это в отличие от предыдущих релизов, где экземпляры Typeable необходимо было явно выводить, используя расширение языка DeriveDataTypeable.

Начиная с GHC 7.8, Typeable является поли-киндным. Требуемые изменения могут нарушить некоторые старые программы, связанные с Typeable. Более подробные сведения об этом, включая способы исправления вашего кода, можно найти на странице wiki PolyTypeable.

Класс Typeable

class Typeable (a :: k) Источник

Класс Typeable позволяет вычислить конкретное представление типа.

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

typeRep#

typeOf :: forall a. Typeable a => a -> TypeRep Источник

Наблюдение за представлением типа для типа значения.

typeRep :: forall proxy a. Typeable a => proxy a -> TypeRep Источник

Принимает значение типа a и возвращает конкретное представление этого типа.

С: base-4.7.0.0

Пропозициональное равенство

data a :~: b where infix 4 Источник

Пропозициональное равенство. Если a :~: b содержит какое-то завершающее значение, то тип a такой же, как тип b. Чтобы использовать это равенство на практике, выполните сопоставление с образцом на a :~: b, чтобы получить конструктор Refl; в теле сопоставления с образцом компилятор знает, что a ~ b.

С: base-4.7.0.0

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

Refl :: a :~: a
Примеры
Подробности примеров
Category ((:~:) :: k -> k -> Тип)

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

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

Определено в Control.Category

Методы

id :: forall (a :: k0). a :~: a Исходный код

(.) :: forall (b :: k0) (c :: k0) (a :: k0). (b :~: c) -> (a :~: b) -> a :~: c Исходный код

TestEquality ((:~:) a :: k -> Тип)

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

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

Определено в Data.Type.Equality

Методы

testEquality :: forall (a0 :: k0) (b :: k0). (a :~: a0) -> (a :~: b) -> Может быть (a0 :~: b) Исходный код

TestCoercion ((:~:) a :: k -> Тип)

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

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

Определено в Data.Type.Coercion

Методы

testCoercion :: forall (a0 :: k0) (b :: k0). (a :~: a0) -> (a :~: b) -> Может быть (Преобразование a0 b) Исходный код

a ~ b => Ограниченный (a :~: b)

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

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

Определено в Data.Type.Equality

Методы

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

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

a ~ b => Перечисление (a :~: b)

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

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

Определено в Data.Type.Equality

Методы

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

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

toEnum :: Целое число -> a :~: b Исходный код

fromEnum :: (a :~: b) -> Целое число Исходный код

Eq (a :~: b)

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

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

Определено в Data.Type.Equality

Методы

(==) :: (a :~: b) -> (a :~: b) -> Булево Исходный код

(/=) :: (a :~: b) -> (a :~: b) -> Булево Исходный код

(a ~ b, Data a) => Data (a :~: b)

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

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

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

Методы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ord (a :~: b)

Since: base-4.7.0.0

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

Определено в Data.Type.Equality

Методы

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

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

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

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

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

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

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

a ~ b => Read (a :~: b)

Since: base-4.7.0.0

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

Определено в Data.Type.Equality

Методы

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

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

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

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

Show (a :~: b)

Since: base-4.7.0.0

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

Определено в Data.Type.Equality

Методы

showsPrec :: Int -> (a :~: b) -> ShowS Источник

show :: (a :~: b) -> String Источник

showList :: [a :~: b] -> ShowS Источник

data a :~~: b where infix 4 Источник

Тип гетерогенного высказывания равенства. Как :~:, a :~~: b содержит значение, если и только если a — это тот же тип, что и b.

Since: base-4.10.0.0

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

HRefl :: a :~~: a
Примеры
Подробности примеров
Категория ((:~~:) :: k -> k -> Тип)

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

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

Определено в Control.Category

Методы

id :: forall (a :: k0). a :~~: a Источник

(.) :: forall (b :: k0) (c :: k0) (a :: k0). (b :~~: c) -> (a :~~: b) -> a :~~: c Источник

TestEquality ((:~~:) a :: k -> Тип)

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

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

Определено в Data.Type.Equality

Методы

testEquality :: forall (a0 :: k0) (b :: k0). (a :~~: a0) -> (a :~~: b) -> Может быть (a0 :~: b) Источник

TestCoercion ((:~~:) a :: k -> Тип)

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

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

Определено в Data.Type.Coercion

Методы

testCoercion :: forall (a0 :: k0) (b :: k0). (a :~~: a0) -> (a :~~: b) -> Может быть (Преобразование a0 b) Источник

a ~~ b => Ограниченный (a :~~: b)

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

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

Определено в Data.Type.Equality

Методы

minBound :: a :~~: b Источник

maxBound :: a :~~: b Источник

a ~~ b => Перечисление (a :~~: b)

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

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

Определено в Data.Type.Equality

Методы

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

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

toEnum :: Целое -> a :~~: b Источник

fromEnum :: (a :~~: b) -> Целое Источник

enumFrom :: (a :~~: b) -> [a :~~: b] Источник

...

Равенство (a :~~: b)

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

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

Определено в Data.Type.Equality

Методы

(==) :: (a :~~: b) -> (a :~~: b) -> Булево Источник

(/=) :: (a :~~: b) -> (a :~~: b) -> Булево Источник

(Типизируемый i, Типизируемый j, Типизируемый a, Типизируемый b, a ~~ b) => Данные (a :~~: b)

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

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

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

Методы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ord (a :~~: b)

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

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

Определено в Data.Type.Equality

Методы

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

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

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

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

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

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

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

a ~~ b => Read (a :~~: b)

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

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

Определено в Data.Type.Equality

Методы

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

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

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

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

Show (a :~~: b)

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

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

Определено в Data.Type.Equality

Методы

showsPrec :: Int -> (a :~~: b) -> ShowS Исходный код

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

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

Безопасный приведение типов

cast :: forall a b. (Typeable a, Typeable b) => a -> Может быть b Исходный код

Операция безопасного приведения типов

eqT :: forall a b. (Typeable a, Typeable b) => Может быть (a :~: b) Исходный код

Извлечь свидетельство равенства двух типов

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

gcast :: forall a b c. (Typeable a, Typeable b) => c a -> Может быть (c b) Исходный код

Гибкая вариация, параметризованная конструктором типа

Обобщенные преобразования для типов высших порядков

gcast1 :: forall c t t' a. (Typeable t, Typeable t') => c (t a) -> Может быть (c (t' a)) Исходный код

Преобразование над k1 -> k2

gcast2 :: forall c t t' a b. (Typeable t, Typeable t') => c (t a b) -> Может быть (c (t' a b)) Исходный код

Преобразование над k1 -> k2 -> k3

Канонический тип прокси

data Proxy t Исходный код

Proxy — это тип, который не содержит данных, но имеет фиктивный параметр произвольного типа (или даже вида). Его использование заключается в предоставлении информации о типе, даже если значение этого типа недоступно (или его создание слишком дорого).

Исторически Proxy :: Proxy a является более безопасной альтернативой undefined :: a конструкции.

>>> Proxy :: Proxy (Void, Int -> Int)
Proxy

Прокси может даже содержать типы высших видов,

>>> Proxy :: Proxy Either
Proxy
>>> Proxy :: Proxy Functor
Proxy
>>> Proxy :: Proxy complicatedStructure
Proxy

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

Proxy
Примеры использования
Подробности примеров использования
Generic1 (Proxy :: k -> Тип)

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

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

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

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

type Rep1 Proxy :: k -> Тип Исходный код

Методы

from1 :: forall (a :: k0). Proxy a -> Rep1 Proxy a Исходный код

to1 :: forall (a :: k0). Rep1 Proxy a -> Proxy a Исходный код

Монад (Proxy :: Тип -> Тип)

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

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

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

Методы

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

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

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

Функтор (Proxy :: Тип -> Тип)

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

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

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

Методы

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

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

Применимый (Proxy :: Тип -> Тип)

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

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

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

Методы

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

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

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

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

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

Складываемый (Proxy :: Тип -> Тип)

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

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

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

Методы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Traversable (Proxy :: Type -> Type)

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

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

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

Методы

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

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

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

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

MonadPlus (Proxy :: Type -> Type)

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

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

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

Методы

mzero :: Proxy a Исходный код

mplus :: Proxy a -> Proxy a -> Proxy a Исходный код

Alternative (Proxy :: Type -> Type)

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

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

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

Методы

empty :: Proxy a Исходный код

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

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

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

MonadZip (Proxy :: Type -> Type)

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

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

Определено в Control.Monad.Zip

Краткое описание методов

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

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

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

Show1 (Proxy :: Type -> Type)

С версии: base-4.9.0.0

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

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

Краткое описание методов

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

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

Read1 (Proxy :: Type -> Type)

С версии: 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] Источник

Ord1 (Proxy :: Type -> Type)

С версии: base-4.9.0.0

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

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

Краткое описание методов

liftCompare :: (a -> b -> Ordering) -> Proxy a -> Proxy b -> Ordering Источник

Eq1 (Proxy :: Type -> Type)

С версии: base-4.9.0.0

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

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

Краткое описание методов

liftEq :: (a -> b -> Bool) -> Proxy a -> Proxy b -> Bool Источник

Contravariant (Proxy :: Type -> Type)
Подробности экземпляра

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

Краткое описание методов

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

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

Bounded (Proxy t)

С версии: base-4.7.0.0

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

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

Краткое описание методов

minBound :: Proxy t Источник

maxBound :: Proxy t Источник

Enum (Proxy s)

С версии: base-4.7.0.0

Instance details

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

Краткое описание методов

succ :: Proxy s -> Proxy s Source

pred :: Proxy s -> Proxy s Source

toEnum :: Int -> Proxy s Source

fromEnum :: Proxy s -> Int Source

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

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

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

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

Eq (Proxy s)

Since: base-4.7.0.0

Instance details

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

Краткое описание методов

(==) :: Proxy s -> Proxy s -> Bool Source

(/=) :: Proxy s -> Proxy s -> Bool Source

Data t => Data (Proxy t)

Since: base-4.7.0.0

Instance details

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

Краткое описание методов

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Proxy t -> c (Proxy t) Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Proxy t) Source

toConstr :: Proxy t -> Constr Source

dataTypeOf :: Proxy t -> DataType Source

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

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

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

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

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Proxy t -> r Source

gmapQ :: (forall d. Data d => d -> u) -> Proxy t -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> Proxy t -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) Source

Ord (Proxy s)

Since: base-4.7.0.0

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

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

Методы

compare :: Proxy s -> Proxy s -> Ordering Исходный код

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

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

(>) :: Proxy s -> Proxy s -> Bool Исходный код

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

max :: Proxy s -> Proxy s -> Proxy s Исходный код

min :: Proxy s -> Proxy s -> Proxy s Исходный код

Read (Proxy t)

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

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

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

Методы

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

readList :: ReadS [Proxy t] Исходный код

readPrec :: ReadPrec (Proxy t) Исходный код

readListPrec :: ReadPrec [Proxy t] Исходный код

Show (Proxy s)

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

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

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

Методы

showsPrec :: Int -> Proxy s -> ShowS Исходный код

show :: Proxy s -> String Исходный код

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

Ix (Proxy s)

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

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

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

Методы

range :: (Proxy s, Proxy s) -> [Proxy s] Исходный код

index :: (Proxy s, Proxy s) -> Proxy s -> Int Исходный код

unsafeIndex :: (Proxy s, Proxy s) -> Proxy s -> Int Исходный код

inRange :: (Proxy s, Proxy s) -> Proxy s -> Bool Исходный код

rangeSize :: (Proxy s, Proxy s) -> Int Исходный код

unsafeRangeSize :: (Proxy s, Proxy s) -> Int Исходный код

Generic (Proxy t)

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

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

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

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

type Rep (Proxy t) :: Type -> Type Исходный код

Методы

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

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

Semigroup (Proxy s)

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

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

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

Методы

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

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

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

Monoid (Proxy s)

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

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

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

Методы

mempty :: Proxy s Исходный код

mappend :: Proxy s -> Proxy s -> Proxy s Исходный код

mconcat :: [Proxy s] -> Proxy s Исходный код

type Rep1 (Proxy :: k -> Type)
Подробности экземпляра

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

type Rep1 (Proxy :: k -> Type) = D1 ('MetaData "Proxy" "Data.Proxy" "base" 'False) (C1 ('MetaCons "Proxy" 'PrefixI 'False) (U1 :: k -> Type))
type Rep (Proxy t)
Подробности экземпляра

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

type Rep (Proxy t) = D1 ('MetaData "Proxy" "Data.Proxy" "base" 'False) (C1 ('MetaCons "Proxy" 'PrefixI 'False) (U1 :: Type -> Type))

Представления типов

type TypeRep = SomeTypeRep Исходный код

Квантованное представление типа.

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

Принудительное приведение к нормальной форме.

showsTypeRep :: TypeRep -> ShowS Исходный код

Отображение представления типа

mkFunTy :: TypeRep -> TypeRep -> TypeRep Исходный код

Создание типа функции.

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

funResultTy :: TypeRep -> TypeRep -> Maybe TypeRep Исходный код

Применение типа к типу функции. Возвращает: Just u, если первый аргумент представляет функцию типа t -> u, а второй аргумент представляет функцию типа t. В противном случае возвращает Nothing.

splitTyConApp :: TypeRep -> (TyCon, [TypeRep]) Исходный код

Разделение применения конструктора типа. Обратите внимание, что если конструктор типа полиморфен, это не вернёт используемые типы.

typeRepArgs :: TypeRep -> [TypeRep] Исходный код

Наблюдение за аргументами типа представления

typeRepTyCon :: TypeRep -> TyCon Исходный код

Наблюдение за конструктором типа квантованного представления типа.

typeRepFingerprint :: TypeRep -> Fingerprint Исходный код

Принимает значение типа a и возвращает конкретное представление этого типа.

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

Конструкторы типов

data TyCon Исходный код

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

Определено в GHC.Classes

Методы

== :: TyCon -> TyCon -> Bool Исходный код

/= :: TyCon -> TyCon -> Bool Исходный код

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

Определено в GHC.Classes

Методы

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

< :: TyCon -> TyCon -> Bool Исходный код

<= :: TyCon -> TyCon -> Bool Исходный код

> :: TyCon -> TyCon -> Bool Исходный код

>= :: TyCon -> TyCon -> Bool Исходный код

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

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

Show TyCon

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

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

Определено в GHC.Show

Методы

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

show :: TyCon -> Строка Исходный код

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

tyConPackage :: TyCon -> Строка Исходный код

tyConModule :: TyCon -> Строка Исходный код

tyConName :: TyCon -> Строка Исходный код

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

tyConFingerprint :: TyCon -> Отпечаток Исходный код

Для обратной совместимости

typeOf1 :: forall t (a :: Тип). Typeable t => t a -> TypeRep Исходный код

typeOf2 :: forall t (a :: Тип) (b :: Тип). Typeable t => t a b -> TypeRep Исходный код

typeOf3 :: forall t (a :: Тип) (b :: Тип) (c :: Тип). Typeable t => t a b c -> TypeRep Исходный код

typeOf4 :: forall t (a :: Тип) (b :: Тип) (c :: Тип) (d :: Тип). Typeable t => t a b c d -> TypeRep Исходный код

typeOf5 :: forall t (a :: Тип) (b :: Тип) (c :: Тип) (d :: Тип) (e :: Тип). Typeable t => t a b c d e -> TypeRep Исходный код

typeOf6 :: forall t (a :: Тип) (b :: Тип) (c :: Тип) (d :: Тип) (e :: Тип) (f :: Тип). Typeable t => t a b c d e f -> TypeRep Исходный код

typeOf7 :: forall t (a :: Type) (b :: Type) (c :: Type) (d :: Type) (e :: Type) (f :: Type) (g :: Type). Typeable t => t a b c d e f g -> TypeRep Источник

© 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-Typeable.html

Spec-Zone.ru

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