Module OCaml中嵌套签名的示例?

Module OCaml中嵌套签名的示例?,module,ocaml,ml,Module,Ocaml,Ml,在OCaml中,可以嵌套签名: module type FOO = sig module type BAR (* … *) end 我只是想知道是否有人在使用这个例子,因为我想不出任何地方需要它。我想它可能对函子的返回签名有用,但我想不出任何具体的东西。我想到的第一个例子: (这确实是一个函子签名)我记得看到过一些模块(可能是电池),其中包括一个中缀模块,只有在真正需要时才能单独打开。比如说, module Rational = struct let add a b =

在OCaml中,可以嵌套签名:

module type FOO =
sig
  module type BAR
  (* … *)
end

我只是想知道是否有人在使用这个例子,因为我想不出任何地方需要它。我想它可能对函子的返回签名有用,但我想不出任何具体的东西。

我想到的第一个例子:


(这确实是一个函子签名)

我记得看到过一些模块(可能是电池),其中包括一个
中缀
模块,只有在真正需要时才能单独打开。比如说,

module Rational = 
  struct
    let add a b = ...
    let sub a b = ...

    module Infix =
      struct
        let (<+>) = add
        let (<->) = sub
      end
  end
我们也使用它们,尽管它们是单独的文件(与-mlpack结合),用于我们需要的所有生物数据解析器——Nexus、Fasta、Phylip等等

最后,通常在对新算法进行原型化时,我们会先用ocaml编写,然后再使用C版本。我们通常将ocaml版本保存在具有相同函数名的内部模块中

module Align = 
  struct
    module OCaml = 
      struct

      end
  end

嵌套模块非常有意义。然而,问题是关于嵌套模块签名的问题。Michael,你似乎在乞求这个问题。嵌套模块的最终好处导致了嵌套模块签名的必要性。
module Align = 
  struct
    module OCaml = 
      struct

      end
  end