Depends which issue you mean.
Note that your problem can also be worked around for a fixed number of
type parameters by defining your module types as:
module type M = sig
type 'a t
val u : 'a t
val p : 'a t -> 'a t -> 'a t
end
module type ME = sig
type 'a t
val ps: 'a t list -> 'a t
end
which will now work for types with 0 or 1 parameters.
That would break a lot of existing code and wouldn't work very well
without a full effect system in the core language.