module List = Core.List
module type S : sig ... end
module Make : functor (M : Core.Monad.Basic) -> S with type a t := a M.t
module type S2 : sig ... end
module Make2 : functor (M : Core.Monad.Basic2) -> S2 with type (a, b) t := (a, b) M.t