Module but no module type recursion?

I haven’t worked through your example, but one thing to note is that for
modules which consist of only types, you can recursively define them to
be themselves:

module rec ...

and S : sig
   type t = ...
end = S

This trick might provide a way to accomplish what you mean with and type ...

1 Like