模块 Stdlib.Type

module Type: Type

类型相等证明

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

eq 的目的是表示类型相等,而这些相等关系可能无法被类型检查器识别(例如,它们可能依赖于动态数据)。

类型 (a, b) eq 的值表示类型 ab 相等。

如果有一个 eq : (a, b) eq 的值来证明类型 ab 相等,则可以通过对 Equal 进行模式匹配,将类型 a 的值转换为类型 b 的值。

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

在运行时,此函数仅返回其第二个参数,不做任何改变。

类型标识符

module Id: sig .. end

类型标识符。