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