sig
  val iter :
    Test_metrics.t ->
    runs:(([< `Read | `Set_and_create ], Test_metrics.t, int)
          Fieldslib.Field.t_with_perm -> Test_metrics.t -> int -> 'a) ->
    cycles:(([< `Read | `Set_and_create ], Test_metrics.t, int)
            Fieldslib.Field.t_with_perm -> Test_metrics.t -> int -> 'b) ->
    nanos:(([< `Read | `Set_and_create ], Test_metrics.t, int)
           Fieldslib.Field.t_with_perm -> Test_metrics.t -> int -> 'c) ->
    compactions:(([< `Read | `Set_and_create ], Test_metrics.t, int)
                 Fieldslib.Field.t_with_perm -> Test_metrics.t -> int -> 'd) ->
    minor_allocated:(([< `Read | `Set_and_create ], Test_metrics.t, int)
                     Fieldslib.Field.t_with_perm ->
                     Test_metrics.t -> int -> 'e) ->
    major_allocated:(([< `Read | `Set_and_create ], Test_metrics.t, int)
                     Fieldslib.Field.t_with_perm ->
                     Test_metrics.t -> int -> 'f) ->
    promoted:(([< `Read | `Set_and_create ], Test_metrics.t, int)
              Fieldslib.Field.t_with_perm -> Test_metrics.t -> int -> 'g) ->
    major_collections:(([< `Read | `Set_and_create ], Test_metrics.t, int)
                       Fieldslib.Field.t_with_perm ->
                       Test_metrics.t -> int -> 'h) ->
    minor_collections:(([< `Read | `Set_and_create ], Test_metrics.t, int)
                       Fieldslib.Field.t_with_perm ->
                       Test_metrics.t -> int -> 'i) ->
    'i
  val fold :
    Test_metrics.t ->
    init:'->
    runs:('->
          ([< `Read | `Set_and_create ], Test_metrics.t, int)
          Fieldslib.Field.t_with_perm -> Test_metrics.t -> int -> 'b) ->
    cycles:('->
            ([< `Read | `Set_and_create ], Test_metrics.t, int)
            Fieldslib.Field.t_with_perm -> Test_metrics.t -> int -> 'c) ->
    nanos:('->
           ([< `Read | `Set_and_create ], Test_metrics.t, int)
           Fieldslib.Field.t_with_perm -> Test_metrics.t -> int -> 'd) ->
    compactions:('->
                 ([< `Read | `Set_and_create ], Test_metrics.t, int)
                 Fieldslib.Field.t_with_perm -> Test_metrics.t -> int -> 'e) ->
    minor_allocated:('->
                     ([< `Read | `Set_and_create ], Test_metrics.t, int)
                     Fieldslib.Field.t_with_perm ->
                     Test_metrics.t -> int -> 'f) ->
    major_allocated:('->
                     ([< `Read | `Set_and_create ], Test_metrics.t, int)
                     Fieldslib.Field.t_with_perm ->
                     Test_metrics.t -> int -> 'g) ->
    promoted:('->
              ([< `Read | `Set_and_create ], Test_metrics.t, int)
              Fieldslib.Field.t_with_perm -> Test_metrics.t -> int -> 'h) ->
    major_collections:('->
                       ([< `Read | `Set_and_create ], Test_metrics.t, int)
                       Fieldslib.Field.t_with_perm ->
                       Test_metrics.t -> int -> 'i) ->
    minor_collections:('->
                       ([< `Read | `Set_and_create ], Test_metrics.t, int)
                       Fieldslib.Field.t_with_perm ->
                       Test_metrics.t -> int -> 'j) ->
    'j
end