functor (A : S2) (B : S2) -> sig type t = { eq : 'a 'b. (('a, 'b) A.t, ('a, 'b) B.t) Type_equal.t; } val witness : Typename.Same_witness_exn_2.t end