Spec-Zone.ru › Haskell 9

Data.Type.Coercion

Лицензия BSD-стиль (см. файл LICENSE в дистрибутиве)
Поддерживающий libraries@haskell.org
Устойчивость стабильная
Переносимость не переносимая
Safe Haskell Нет
Язык Haskell2010

Описание

Определение репрезентативного равенства (Coercion).

С версии: base-4.7.0.0

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

Репрезентативное равенство. Если Coercion a b содержит некоторое завершающее значение, то тип a имеет такое же базовое представление, как тип b.

Для практического использования этого равенства, выполните сопоставление с образцом на Coercion a b, чтобы получить экземпляр Coercible a b, а затем используйте coerce, чтобы применить его.

С версии: base-4.7.0.0

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

Coercion :: forall {k} (a :: k) (b :: k). Coercible a b => Coercion a b
Экземпляры
Подробности об экземплярах
Category (Coercion :: k -> k -> Type) Источник

С версии: base-4.7.0.0

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

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

Методы

id :: forall (a :: k). Coercion a a Источник

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

TestCoercion (Coercion a :: k -> Type) Источник

С версии: base-4.7.0.0

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

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

Методы

testCoercion :: forall (a0 :: k) (b :: k). Coercion a a0 -> Coercion a b -> Maybe (Coercion a0 b) Источник

(Coercible a b, Data a, Data b) => Data (Coercion 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) -> Coercion a b -> c (Coercion a b) Источник

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Coercion a b) Источник

toConstr :: Coercion a b -> Constr Источник

dataTypeOf :: Coercion a b -> DataType Источник

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Coercion a b)) Источник

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Coercion a b)) Источник

gmapT :: (forall b0. Data b0 => b0 -> b0) -> Coercion a b -> Coercion a b Источник

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Coercion a b -> r Источник

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Coercion a b -> r Источник

gmapQ :: (forall d. Data d => d -> u) -> Coercion a b -> [u] Источник

gmapQi :: Int -> (forall d. Data d => d -> u) -> Coercion a b -> u Источник

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Coercion a b -> m (Coercion a b) Источник

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Coercion a b -> m (Coercion a b) Источник

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Coercion a b -> m (Coercion a b) Источник

Coercible a b => Bounded (Coercion a b) Источник

С версии: base-4.7.0.0

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

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

Методы

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

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

Coercible a b => Enum (Coercion a b) Источник

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

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

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

Методы

succ :: Coercion a b -> Coercion a b Источник

pred :: Coercion a b -> Coercion a b Источник

toEnum :: Int -> Coercion a b Источник

fromEnum :: Coercion a b -> Int Источник

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

enumFromThen :: Coercion a b -> Coercion a b -> [Coercion a b] Источник

enumFromTo :: Coercion a b -> Coercion a b -> [Coercion a b] Источник

enumFromThenTo :: Coercion a b -> Coercion a b -> Coercion a b -> [Coercion a b] Источник

Coercible a b => Read (Coercion a b) Источник

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

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

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

Методы

readsPrec :: Int -> ReadS (Coercion a b) Источник

readList :: ReadS [Coercion a b] Источник

readPrec :: ReadPrec (Coercion a b) Источник

readListPrec :: ReadPrec [Coercion a b] Источник

Show (Coercion a b) Источник

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

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

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

Методы

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

show :: Coercion a b -> String Источник

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

Eq (Coercion a b) Источник

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

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

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

Методы

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

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

Ord (Coercion a b) Источник

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

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

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

Методы

compare :: Coercion a b -> Coercion a b -> Ordering Источник

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

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

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

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

max :: Coercion a b -> Coercion a b -> Coercion a b Источник

min :: Coercion a b -> Coercion a b -> Coercion a b Источник

coerceWith :: Coercion a b -> a -> b Источник

Безопасный приведение типов, используя равенство представлений

gcoerceWith :: forall {k} (a :: k) (b :: k) r. Coercion a b -> (Coercible a b => r) -> r Источник

Обобщенная форма безопасного приведения типов с использованием равенства представлений

С версии: base-4.10.0.0

sym :: forall {k} (a :: k) (b :: k). Coercion a b -> Coercion b a Источник

Симметрия равенства представлений

trans :: forall {k} (a :: k) (b :: k) (c :: k). Coercion a b -> Coercion b c -> Coercion a c Источник

Транзитивность равенства представлений

repr :: forall {k} (a :: k) (b :: k). (a :~: b) -> Coercion a b Источник

Преобразовать пропозициональное (номинальное) равенство в равенство представлений

class TestCoercion (f :: k -> Type) where Источник

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

Методы

testCoercion :: forall (a :: k) (b :: k). f a -> f b -> Maybe (Coercion a b) Источник

Условно доказать равенство представлений a и b.

Примеры
Подробности примеров
TestCoercion SNat Исходный код

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

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

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

Методы

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

TestCoercion SChar Исходный код

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

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

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

Методы

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

TestCoercion SSymbol Исходный код

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

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

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

Методы

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

TestCoercion (Coercion a :: k -> Тип) Исходный код

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

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

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

Методы

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

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

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

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

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

Методы

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

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

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

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

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

Методы

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

© 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/Data-Type-Coercion.html

Spec-Zone.ru

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