sig
  val iter :
    Execution_context.t ->
    monitor:(([< `Read | `Set_and_create ], Execution_context.t,
              Execution_context.Monitor.t)
             Fieldslib.Field.t_with_perm ->
             Execution_context.t -> Execution_context.Monitor.t -> 'a) ->
    priority:(([< `Read | `Set_and_create ], Execution_context.t, Priority.t)
              Fieldslib.Field.t_with_perm ->
              Execution_context.t -> Priority.t -> 'b) ->
    backtrace_history:(([< `Read | `Set_and_create ], Execution_context.t,
                        Core.Std.Backtrace.t list)
                       Fieldslib.Field.t_with_perm ->
                       Execution_context.t -> Core.Std.Backtrace.t list -> 'c) ->
    kill_index:(([< `Read | `Set_and_create ], Execution_context.t,
                 Kill_index.t)
                Fieldslib.Field.t_with_perm ->
                Execution_context.t -> Kill_index.t -> 'd) ->
    'd
  val fold :
    Execution_context.t ->
    init:'->
    monitor:('->
             ([< `Read | `Set_and_create ], Execution_context.t,
              Execution_context.Monitor.t)
             Fieldslib.Field.t_with_perm ->
             Execution_context.t -> Execution_context.Monitor.t -> 'b) ->
    priority:('->
              ([< `Read | `Set_and_create ], Execution_context.t, Priority.t)
              Fieldslib.Field.t_with_perm ->
              Execution_context.t -> Priority.t -> 'c) ->
    backtrace_history:('->
                       ([< `Read | `Set_and_create ], Execution_context.t,
                        Core.Std.Backtrace.t list)
                       Fieldslib.Field.t_with_perm ->
                       Execution_context.t -> Core.Std.Backtrace.t list -> 'd) ->
    kill_index:('->
                ([< `Read | `Set_and_create ], Execution_context.t,
                 Kill_index.t)
                Fieldslib.Field.t_with_perm ->
                Execution_context.t -> Kill_index.t -> 'e) ->
    'e
end