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