模組 Type

module Type: sig .. end

型別內省。


型別相等性證明

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

型別識別符。