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