The following code compiles correctly:
open Batteries
module Ord = struct type t=string let compare=compare end
module type S = sig
include module type of Map.Make(Ord)
(* include module type of Map.Make(Ord).Labels *)
end
-----
An easy workaround is to name the functor's result:
open Batteries
module Ord = struct type t=string let compare=compare end
module M = Map.Make(Ord)
module type S = sig
include module type of M
include module type of M.Labels
end
-----
The above compiles correctly, but is this the best/only solution?