Spec-Zone.ru › Haskell 7

Преобразование типов данных

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

Описание

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

С момента: 4.7.0.0

data Coercion a b where Исходный код

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

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

С момента: 4.7.0.0

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

Coercion :: Coercible a b => Coercion a b

Экземпляры

Category k (Coercion k)
TestCoercion k (Coercion k a)
Coercible k a b => Bounded (Coercion k a b)
Coercible k a b => Enum (Coercion k a b)
Eq (Coercion k a b)
(Coercible * a b, Data a, Data b) => Data (Coercion * a b)
Ord (Coercion k a b)
Coercible k a b => Read (Coercion k a b)
Show (Coercion k a b)

coerceWith :: Coercion a b -> a -> b Исходный код

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

sym :: forall a b. Coercion a b -> Coercion b a Исходный код

Симметрия репрезентативного равенства

trans :: Coercion a b -> Coercion b c -> Coercion a c Исходный код

Транзитивность репрезентативного равенства

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

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

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

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

Методы

testCoercion :: f a -> f b -> Maybe (Coercion a b) Исходный код

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

Экземпляры

TestCoercion k (Coercion k a)
TestCoercion k ((:~:) k a)

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

Spec-Zone.ru

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