sig
  type ('a, 'b) t = T : ('a, 'a) Type_equal.t
  type ('a, 'b) equal = ('a, 'b) Type_equal.t
  val conv : ('a, 'b) Type_equal.t -> '-> 'b
  val refl : ('a, 'a) Type_equal.t
  module Lift :
    functor (X : sig type 'a t end->
      sig
        val lift : ('a, 'b) Type_equal.t -> ('X.t, 'X.t) Type_equal.t
      end
end