module type S = sig type t end module N : sig type 'a t = 'a end val f : (module S with type t = unit) -> unit = Line 1, characters 19-20: 1 | let () = f (module N);; ^ Error: Signature mismatch: Modules do not match: sig type 'a t = 'a end is not included in S Type declarations do not match: type 'a t = 'a is not included in type t They have different arities.