functor (A : Variant_and_record_intf.S) (B : Variant_and_record_intf.S->
  sig
    type map = { map : 'a. 'A.t -> 'B.t; }
    val map_variant :
      Type_generic.Helper.map -> 'A.Variant.t -> 'B.Variant.t
    val map_record :
      Type_generic.Helper.map -> 'A.Record.t -> 'B.Record.t
  end