簡體   English   中英

使用模塊包含在OCaml中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM