sig
  val names : string list
  val coefficient :
    ([< `Read | `Set_and_create ], Bench_result.Predictor_result.t,
     Bench_result.Coefficient.t)
    Fieldslib.Field.t_with_perm
  val pred :
    ([< `Read | `Set_and_create ], Bench_result.Predictor_result.t,
     Variable.t)
    Fieldslib.Field.t_with_perm
  val make_creator :
    pred:(([< `Read | `Set_and_create ], Bench_result.Predictor_result.t,
           Variable.t)
          Fieldslib.Field.t_with_perm -> '-> ('-> Variable.t) * 'c) ->
    coefficient:(([< `Read | `Set_and_create ],
                  Bench_result.Predictor_result.t,
                  Bench_result.Coefficient.t)
                 Fieldslib.Field.t_with_perm ->
                 '-> ('-> Bench_result.Coefficient.t) * 'd) ->
    '-> ('-> Bench_result.Predictor_result.t) * 'd
  val create :
    pred:Variable.t ->
    coefficient:Bench_result.Coefficient.t -> Bench_result.Predictor_result.t
  val map :
    pred:(([< `Read | `Set_and_create ], Bench_result.Predictor_result.t,
           Variable.t)
          Fieldslib.Field.t_with_perm -> Variable.t) ->
    coefficient:(([< `Read | `Set_and_create ],
                  Bench_result.Predictor_result.t,
                  Bench_result.Coefficient.t)
                 Fieldslib.Field.t_with_perm -> Bench_result.Coefficient.t) ->
    Bench_result.Predictor_result.t
  val iter :
    pred:(([< `Read | `Set_and_create ], Bench_result.Predictor_result.t,
           Variable.t)
          Fieldslib.Field.t_with_perm -> 'a) ->
    coefficient:(([< `Read | `Set_and_create ],
                  Bench_result.Predictor_result.t,
                  Bench_result.Coefficient.t)
                 Fieldslib.Field.t_with_perm -> 'b) ->
    'b
  val fold :
    init:'->
    pred:('->
          ([< `Read | `Set_and_create ], Bench_result.Predictor_result.t,
           Variable.t)
          Fieldslib.Field.t_with_perm -> 'b) ->
    coefficient:('->
                 ([< `Read | `Set_and_create ],
                  Bench_result.Predictor_result.t,
                  Bench_result.Coefficient.t)
                 Fieldslib.Field.t_with_perm -> 'c) ->
    'c
  val map_poly :
    ([< `Read | `Set_and_create ], Bench_result.Predictor_result.t, 'a)
    Fieldslib.Field.user -> 'a list
  val for_all :
    pred:(([< `Read | `Set_and_create ], Bench_result.Predictor_result.t,
           Variable.t)
          Fieldslib.Field.t_with_perm -> bool) ->
    coefficient:(([< `Read | `Set_and_create ],
                  Bench_result.Predictor_result.t,
                  Bench_result.Coefficient.t)
                 Fieldslib.Field.t_with_perm -> bool) ->
    bool
  val exists :
    pred:(([< `Read | `Set_and_create ], Bench_result.Predictor_result.t,
           Variable.t)
          Fieldslib.Field.t_with_perm -> bool) ->
    coefficient:(([< `Read | `Set_and_create ],
                  Bench_result.Predictor_result.t,
                  Bench_result.Coefficient.t)
                 Fieldslib.Field.t_with_perm -> bool) ->
    bool
  val to_list :
    pred:(([< `Read | `Set_and_create ], Bench_result.Predictor_result.t,
           Variable.t)
          Fieldslib.Field.t_with_perm -> 'a) ->
    coefficient:(([< `Read | `Set_and_create ],
                  Bench_result.Predictor_result.t,
                  Bench_result.Coefficient.t)
                 Fieldslib.Field.t_with_perm -> 'a) ->
    'a list
  module Direct :
    sig
      val iter :
        Bench_result.Predictor_result.t ->
        pred:(([< `Read | `Set_and_create ], Bench_result.Predictor_result.t,
               Variable.t)
              Fieldslib.Field.t_with_perm ->
              Bench_result.Predictor_result.t -> Variable.t -> 'a) ->
        coefficient:(([< `Read | `Set_and_create ],
                      Bench_result.Predictor_result.t,
                      Bench_result.Coefficient.t)
                     Fieldslib.Field.t_with_perm ->
                     Bench_result.Predictor_result.t ->
                     Bench_result.Coefficient.t -> 'b) ->
        'b
      val fold :
        Bench_result.Predictor_result.t ->
        init:'->
        pred:('->
              ([< `Read | `Set_and_create ], Bench_result.Predictor_result.t,
               Variable.t)
              Fieldslib.Field.t_with_perm ->
              Bench_result.Predictor_result.t -> Variable.t -> 'b) ->
        coefficient:('->
                     ([< `Read | `Set_and_create ],
                      Bench_result.Predictor_result.t,
                      Bench_result.Coefficient.t)
                     Fieldslib.Field.t_with_perm ->
                     Bench_result.Predictor_result.t ->
                     Bench_result.Coefficient.t -> 'c) ->
        'c
    end
end