(* TEST flags = "-dshape"; expect; *) module type Make = functor (I : sig end) -> sig open I end ;; [%%expect{| { "Make"[module type] -> <.1>; } module type Make = (I : sig end) -> sig end |}] module Make (I : sig end) : sig open I end = struct end ;; [%%expect{| { "Make"[module] -> Abs<.3>(I, {}); } module Make : (I : sig end) -> sig end |}] module type Make = functor (I : sig end) -> module type of struct open I end [%%expect{| { "Make"[module type] -> <.5>; } module type Make = (I : sig end) -> sig end |}]