(在 OCaml 3.12 中引入)
|
結構 module type of module-expr 會展開為模組表達式 module-expr 推斷出的模組類型(簽名或函子類型)。為了使這個模組類型在許多情況下可重複使用,它故意不被加強:抽象類型和資料類型與原始模組的類型沒有明確的關聯。基於同樣的原因,推斷類型中的模組別名也會被展開。
一個典型的用法,與簽名層級的 include 結構結合使用,是擴展現有結構的簽名。在這種情況下,人們希望保持類型與原始模組中的類型相等。這可以使用以下慣用語來完成。
簽名 MYHASH 然後包含模組 Hashtbl 簽名的所有欄位(具有加強的類型定義),加上新欄位 replace。可以通過再次使用 include 結構來輕鬆獲得此簽名的實作,但這次是在結構層級
另一個可以方便地使用不加強的情況,是為現有模組提供替代實作。
此慣用語保證 Myset 與 Set 相容,但允許它在內部以不同的方式表示集合。