[英]Using module include in OCaml
在OCaml 3.11中,我想使用include指令“擴展”現有模塊,如下所示:
module MyString = struct
include String
let trim s = ...
end
沒問題。 但現在我想明確地公開這個模塊的類型(即在.mli文件中)。 我想要這樣的東西:
module MyString : sig
include String
val trim : string -> string
end
但是include語法不正確,因為String指的是模塊,而不是模塊類型(編譯器確實是barf)。 我如何在這里引用String的模塊類型(沒有在sig表達式中明確地寫出來)?
謝謝!
OCaml 3.12將有一個類似module type of M
構造,我相信它會解決你的問題。 同時,您可以讓編譯器使用ocamlc -i
生成冗長的簽名。 對不起,但我認為這是你用3.11做的最好的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.