Spec-Zone.ru › OCaml

Тип модуля

module Type: sig .. end

Интроспекция типов.

  • Since 5.1

Свидетельство о равенстве типов

type (_, _) eq = 
| Equal : ('a, 'a) eq

Цель eq — представлять равенства типов, которые могут быть неизвестны проверяющему типу (например, потому что они могут зависеть от динамических данных).

Значение типа (a, b) eq представляет тот факт, что типы a и b равны.

Если у вас есть значение eq : (a, b) eq , которое доказывает, что типы a и b равны, вы можете использовать его для преобразования значения типа a в значение типа b с помощью сопоставления с образцом на Equal:

      let cast (type a) (type b) (Equal : (a, b) Type.eq) (a : a) : b = a
    

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

Идентификаторы типов

module Id: sig .. end

Идентификаторы типов.

© 1995-2024 INRIA.
https://ocaml.org/manual/5.2/api/Type.html

Spec-Zone.ru

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