(* TEST flags = " -w -a "; setup-ocamlc.byte-build-env; ocamlc.byte; check-ocamlc.byte-output; *) module Gen_spec = struct type 't extra = unit end module type S = sig module Spec : sig type 't extra = unit end type t val make : unit -> t Spec.extra end (* S *) module Make () : S with module Spec := Gen_spec = struct type t = int let make () = () end (* Make *) let () = let module M = Make () in M.make () (* (M.make () : unit) *)