functor (X : T.T3) -> sig val lift : ('a1, 'b1) Type_equal.t -> ('a2, 'b2) Type_equal.t -> ('a3, 'b3) Type_equal.t -> (('a1, 'a2, 'a3) X.t, ('b1, 'b2, 'b3) X.t) Type_equal.t end