Depends which issue you mean.

I mean having a functor which compiles with several signatures and wanting to leverage that fact with minimal fuss. But obviously, it does not seem to stir the passions of the ocaml list readers. I'm going for weird…
 
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.

It's not very modular, but indeed. It requires signature duplication however, because (for some reason), we cannot do things like "S with type  'a t := int", and I happen to use substitution. I guess I could use more powerful ways to manipulate signatures. Like taking a module signature with a type [t], and turn it into the same signature of type ['a t] (with 'a universally bound at each function). This is always well defined, isn't it?

The other way around sound easier to do however (replacing a Signature on ['a t] by a signature in [t]), as it it just requires loosening the restriction on "same parameters" in member substitution to "a subset of the parameters". But it's less modular and not as good for documentation. But it would be sufficient for many use-cases.

That would break a lot of existing code and wouldn't work very well
without a full effect system in the core language.

I don't think it would break that much (and if it breaks something the fix is two characters long…). I mean, the functions exported by the functor need not be pure. It's just the functor application which has to (that is no reference or such at toplevel). I don't think an effect system is required for that. But my question is mostly theoretical, anyway.