Spec-Zone.ru › Haskell 9

Data.Typeable

Авторское право (c) Университет Глазго CWI 2001--2004
Лицензия В стиле BSD (см. файл libraries/base/LICENSE)
Сопровождающий libraries@haskell.org
Стабильность стабильная
Переносимость переносимый
Безопасный Haskell Safe
Язык 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. Дополнительные сведения, в том числе инструкции по исправлению кода, приведены на странице PolyTypeable вики

Класс Typeable

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

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

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

typeRep#

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

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

typeRep :: forall {k} proxy (a :: k). Typeable a => proxy a -> TypeRep Источник

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

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

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

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

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

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

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

Refl :: forall {k} (a :: k). a :~: a
Экземпляры
Сведения об экземплярах
Category ((:~:) :: k -> k -> Type) Исходный код

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

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

Определён в GHC.Internal.Control.Category

Методы

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

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

TestCoercion ((:~:) a :: k -> Type) Исходный код

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

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

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

Методы

testCoercion :: forall (a0 :: k) (b :: k). (a :~: a0) -> (a :~: b) -> Maybe (Coercion a0 b) Исходный код

TestEquality ((:~:) a :: k -> Type) Исходный код

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

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

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

Методы

testEquality :: forall (a0 :: k) (b :: k). (a :~: a0) -> (a :~: b) -> Maybe (a0 :~: b) Исходный код

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

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

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

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

Методы

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

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

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

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

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

Определён в GHC.Internal.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, Data a) => Data (a :~: b) Исходный код

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

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

Определён в GHC.Internal.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) Исходный код

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

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

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

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

Методы

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

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

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

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

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

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

Методы

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

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

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

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

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

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

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

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

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

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

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

Определён в GHC.Internal.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.7.0.0

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

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

Методы

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

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

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

data (a :: k1) :~~: (b :: k2) where infix 4 Исходный код

Неоднородное пропозициональное равенство видов. Подобно :~:, a :~~: b содержит завершающееся значение тогда и только тогда, когда a и b являются одним и тем же типом.

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

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

HRefl :: forall {k1} (a :: k1). a :~~: a
Экземпляры
Подробности экземпляров
Category ((:~~:) :: k -> k -> Type) Исходный код

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

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

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

Методы

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

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

TestCoercion ((:~~:) a :: k -> Type) Исходный код

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

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

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

Методы

testCoercion :: forall (a0 :: k) (b :: k). (a :~~: a0) -> (a :~~: b) -> Maybe (Coercion a0 b) Исходный код

TestEquality ((:~~:) a :: k -> Type) Исходный код

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

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

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

Методы

testEquality :: forall (a0 :: k) (b :: k). (a :~~: a0) -> (a :~~: b) -> Maybe (a0 :~: b) Исходный код

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

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

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

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

Методы

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

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

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

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

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

Определено в GHC.Internal.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 Исходный код

(Typeable i, Typeable j, Typeable a, Typeable b, a ~~ b) => Data (a :~~: b) Исходный код

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

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

Определено в GHC.Internal.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) Исходный код

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

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

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

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

Методы

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

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

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

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

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

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

Методы

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

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

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

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

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

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

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

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

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

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

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

Определено в GHC.Internal.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

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

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

Методы

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

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

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

Типобезопасное приведение

cast :: (Typeable a, Typeable b) => a -> Maybe b Исходный код

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

eqT :: forall {k} (a :: k) (b :: k). (Typeable a, Typeable b) => Maybe (a :~: b) Исходный код

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

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

heqT :: forall {k1} {k2} (a :: k1) (b :: k2). (Typeable a, Typeable b) => Maybe (a :~~: b) Исходный код

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

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

decT :: forall {k} (a :: k) (b :: k). (Typeable a, Typeable b) => Either ((a :~: b) -> Void) (a :~: b) Исходный код

Определить равенство двух типов

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

hdecT :: forall {k1} {k2} (a :: k1) (b :: k2). (Typeable a, Typeable b) => Either ((a :~~: b) -> Void) (a :~~: b) Источник

Определяет гетерогенное равенство двух типов.

С версии: base-4.19.0.0

gcast :: forall {k} (a :: k) (b :: k) c. (Typeable a, Typeable b) => c a -> Maybe (c b) Источник

Гибкий вариант с параметром-конструктором типа

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

gcast1 :: forall {k1} {k2} c (t :: k2 -> k1) (t' :: k2 -> k1) (a :: k2). (Typeable t, Typeable t') => c (t a) -> Maybe (c (t' a)) Источник

Приведение для k1 -> k2

gcast2 :: forall {k1} {k2} {k3} c (t :: k2 -> k3 -> k1) (t' :: k2 -> k3 -> k1) (a :: k2) (b :: k3). (Typeable t, Typeable t') => c (t a b) -> Maybe (c (t' a b)) Источник

Приведение для k1 -> k2 -> k3

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

data Proxy (t :: k) Источник

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

Исторически Proxy :: Proxy a — более безопасная альтернатива идиоме undefined :: a.

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

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

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

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

Proxy
Экземпляры
Подробности экземпляров
Generic1 (Proxy :: k -> Type) Источник
Подробности экземпляра

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

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

type Rep1 (Proxy :: k -> Type)

С версии: base-4.6.0.0

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

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

type Rep1 (Proxy :: k -> Type) = D1 ('MetaData "Proxy" "GHC.Internal.Data.Proxy" "ghc-internal" 'False) (C1 ('MetaCons "Proxy" 'PrefixI 'False) (U1 :: k -> Type))

Методы

from1 :: forall (a :: k). Proxy a -> Rep1 (Proxy :: k -> Type) a Источник

to1 :: forall (a :: k). Rep1 (Proxy :: k -> Type) a -> Proxy a Источник

Eq1 (Proxy :: Type -> Type) Источник

С версии: base-4.9.0.0

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

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

Методы

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

Ord1 (Proxy :: Type -> Type) Источник

С версии: base-4.9.0.0

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

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

Методы

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

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] Источник

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 Источник

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

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

Методы

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

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

Alternative (Proxy :: Type -> Type) Источник

С версии: base-4.9.0.0

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

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

Методы

empty :: Proxy a Источник

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

some :: Proxy a -> Proxy [a] Источник

many :: Proxy a -> Proxy [a] Источник

Applicative (Proxy :: Type -> Type) Источник

С версии: base-4.7.0.0

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

Определено в GHC.Internal.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 Источник

Functor (Proxy :: Type -> Type) Источник

С версии: base-4.7.0.0

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

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

Методы

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

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

Monad (Proxy :: Type -> Type) Источник

С версии: base-4.7.0.0

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

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

Методы

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

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

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

MonadPlus (Proxy :: Type -> Type) Источник

С версии: base-4.9.0.0

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

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

Методы

mzero :: Proxy a Источник

mplus :: Proxy a -> Proxy a -> Proxy a Источник

MonadZip (Proxy :: Type -> Type) Источник

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

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

Определено в GHC.Internal.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) Источник

Foldable (Proxy :: Type -> Type) Источник

С версии: base-4.7.0.0

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

Определено в GHC.Internal.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

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

Определено в GHC.Internal.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) Исходный код

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

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

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

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

Методы

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

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

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

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

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

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

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

Методы

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

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

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

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

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

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

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

Методы

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

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

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

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

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

Определено в GHC.Internal.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 Исходный код

Data t => Data (Proxy t) Исходный код

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

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

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

Методы

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

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

toConstr :: Proxy t -> Constr Исходный код

dataTypeOf :: Proxy t -> DataType Исходный код

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

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

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

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

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

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

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

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

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

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

Bounded (Proxy t) Исходный код

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

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

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

Методы

minBound :: Proxy t Исходный код

maxBound :: Proxy t Исходный код

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

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

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

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

Методы

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

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

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

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

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

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

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

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

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

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

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

type Rep (Proxy t)

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

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

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

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

Методы

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

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

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

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

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

Определён в GHC.Internal.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 Исходный код

Read (Proxy t) Исходный код

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

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

Определён в GHC.Internal.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

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

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

Методы

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

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

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

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

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

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

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

type Rep1 (Proxy :: k -> Type) = D1 ('MetaData "Proxy" "GHC.Internal.Data.Proxy" "ghc-internal" 'False) (C1 ('MetaCons "Proxy" 'PrefixI 'False) (U1 :: k -> Type))
type Rep (Proxy t) Исходный код

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

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

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

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

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

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

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

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

Привести 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.Internal.Classes

Методы

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

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

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

Определён в GHC.Internal.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.Internal.Show

Методы

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

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

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

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

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

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

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

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

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

typeOf1 :: Typeable t => t a -> TypeRep Исходный код

typeOf2 :: Typeable t => t a b -> TypeRep Исходный код

typeOf3 :: Typeable t => t a b c -> TypeRep Исходный код

typeOf4 :: Typeable t => t a b c d -> TypeRep Исходный код

typeOf5 :: Typeable t => t a b c d e -> TypeRep Исходный код

typeOf6 :: Typeable t => t a b c d e f -> TypeRep Исходный код

typeOf7 :: Typeable t => t a b c d e f g -> TypeRep Исходный код

trLiftedRep :: TypeRep LiftedRep Исходный код

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.14.1/docs/libraries/base-4.22.0.0-66f8/Data-Typeable.html

Spec-Zone.ru

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