module type Payload : sig ... end
module type S : sig ... end
module Make : functor (P : Payload) -> S with type t = P.t