Wrap.M
module X : Base.T1
type nonrec 'a t = ( 'a, 'a X.t ) t2
module type S = Interface.S with type 'a t = 'a t