是否有可能在沒有創建「必須實現的新模塊」的情況下在mli中模塊化。 這個例子很有意思,但是,假設我有以下源文件int_wrapper.ml。 type t = Int64.t
let zero = Int64.of_string "0"
我想爲它定義一個接口文件,但Int64.t很長,所以我想縮寫它。 module I = Int64
val zero : int -> I.t
當
我試圖編寫一個函數,它需要一對有序的東西並生成另一個有序的東西(按照字典順序定義)。 但是,我想要得到的「有序類型」是抽象的,而不是OCaml元組。 這很容易處理內聯/匿名簽名。 (* orderedPairSetInlineSig.ml *)
module type ORDERED_TYPE = sig
type t
val compare : t -> t -> int
我有以下的數據類型(請忽略了一個事實,這可能是方式更簡單) type tKey = Key of int;;
type tBST = Null | Pos of node ref
and node = {mutable key : tKey;
mutable left : tBST;
mutable right : tBST};;
我有這個功能,它看