functor (X : T.T1->
  sig val lift : ('a, 'b) Type_equal.t -> ('X.t, 'X.t) Type_equal.t end