nic*_*las 1 ocaml module higher-kinded-types
手册中从未提及以 OCaml 仿函数作为参数或返回 OCaml 仿函数的 OCaml 仿函数。
是否有技术原因阻止 OCaml 拥有更高阶的模块?
支持高阶函子并按预期工作:
module type endo = sig
module type t
module F: t -> t
end
module Twice(F:endo) = struct
module type t = F.t
module F(X:t) = F.F(F.F(X))
end
Run Code Online (Sandbox Code Playgroud)
该手册只是认为这是一个并不令人惊讶的功能。