sig
  val names : string list
  val backtrace_history :
    (Execution_context.t, Core.Std.Backtrace.t list) Fieldslib.Field.t
  val priority : (Execution_context.t, Priority.t) Fieldslib.Field.t
  val monitor :
    (Execution_context.t,
     Execution_context.t Execution_context.Monitor.t_ Backpatched.t)
    Fieldslib.Field.t
  val work_group :
    (Execution_context.t, Work_group.t Backpatched.t) Fieldslib.Field.t
  val make_creator :
    work_group:((Execution_context.t, Work_group.t Backpatched.t)
                Fieldslib.Field.t ->
                '-> ('-> Work_group.t Backpatched.t) * 'c) ->
    monitor:((Execution_context.t,
              Execution_context.t Execution_context.Monitor.t_ Backpatched.t)
             Fieldslib.Field.t ->
             '->
             ('->
              Execution_context.t Execution_context.Monitor.t_ Backpatched.t) *
             'd) ->
    priority:((Execution_context.t, Priority.t) Fieldslib.Field.t ->
              '-> ('-> Priority.t) * 'e) ->
    backtrace_history:((Execution_context.t, Core.Std.Backtrace.t list)
                       Fieldslib.Field.t ->
                       '-> ('-> Core.Std.Backtrace.t list) * 'f) ->
    '-> ('-> Execution_context.t) * 'f
  val create :
    work_group:Work_group.t Backpatched.t ->
    monitor:Execution_context.t Execution_context.Monitor.t_ Backpatched.t ->
    priority:Priority.t ->
    backtrace_history:Core.Std.Backtrace.t list -> Execution_context.t
  val iter :
    work_group:((Execution_context.t, Work_group.t Backpatched.t)
                Fieldslib.Field.t -> 'a) ->
    monitor:((Execution_context.t,
              Execution_context.t Execution_context.Monitor.t_ Backpatched.t)
             Fieldslib.Field.t -> 'b) ->
    priority:((Execution_context.t, Priority.t) Fieldslib.Field.t -> 'c) ->
    backtrace_history:((Execution_context.t, Core.Std.Backtrace.t list)
                       Fieldslib.Field.t -> 'd) ->
    'd
  val fold :
    init:'->
    work_group:('->
                (Execution_context.t, Work_group.t Backpatched.t)
                Fieldslib.Field.t -> 'b) ->
    monitor:('->
             (Execution_context.t,
              Execution_context.t Execution_context.Monitor.t_ Backpatched.t)
             Fieldslib.Field.t -> 'c) ->
    priority:('-> (Execution_context.t, Priority.t) Fieldslib.Field.t -> 'd) ->
    backtrace_history:('->
                       (Execution_context.t, Core.Std.Backtrace.t list)
                       Fieldslib.Field.t -> 'e) ->
    'e
  val map :
    work_group:((Execution_context.t, Work_group.t Backpatched.t)
                Fieldslib.Field.t -> Work_group.t Backpatched.t) ->
    monitor:((Execution_context.t,
              Execution_context.t Execution_context.Monitor.t_ Backpatched.t)
             Fieldslib.Field.t ->
             Execution_context.t Execution_context.Monitor.t_ Backpatched.t) ->
    priority:((Execution_context.t, Priority.t) Fieldslib.Field.t ->
              Priority.t) ->
    backtrace_history:((Execution_context.t, Core.Std.Backtrace.t list)
                       Fieldslib.Field.t -> Core.Std.Backtrace.t list) ->
    Execution_context.t
  val map_poly : (Execution_context.t, 'a) Fieldslib.Field.user -> 'a list
  val for_all :
    work_group:((Execution_context.t, Work_group.t Backpatched.t)
                Fieldslib.Field.t -> bool) ->
    monitor:((Execution_context.t,
              Execution_context.t Execution_context.Monitor.t_ Backpatched.t)
             Fieldslib.Field.t -> bool) ->
    priority:((Execution_context.t, Priority.t) Fieldslib.Field.t -> bool) ->
    backtrace_history:((Execution_context.t, Core.Std.Backtrace.t list)
                       Fieldslib.Field.t -> bool) ->
    bool
  val exists :
    work_group:((Execution_context.t, Work_group.t Backpatched.t)
                Fieldslib.Field.t -> bool) ->
    monitor:((Execution_context.t,
              Execution_context.t Execution_context.Monitor.t_ Backpatched.t)
             Fieldslib.Field.t -> bool) ->
    priority:((Execution_context.t, Priority.t) Fieldslib.Field.t -> bool) ->
    backtrace_history:((Execution_context.t, Core.Std.Backtrace.t list)
                       Fieldslib.Field.t -> bool) ->
    bool
  val to_list :
    work_group:((Execution_context.t, Work_group.t Backpatched.t)
                Fieldslib.Field.t -> 'a) ->
    monitor:((Execution_context.t,
              Execution_context.t Execution_context.Monitor.t_ Backpatched.t)
             Fieldslib.Field.t -> 'a) ->
    priority:((Execution_context.t, Priority.t) Fieldslib.Field.t -> 'a) ->
    backtrace_history:((Execution_context.t, Core.Std.Backtrace.t list)
                       Fieldslib.Field.t -> 'a) ->
    'a list
  module Direct :
    sig
      val iter :
        Execution_context.t ->
        work_group:((Execution_context.t, Work_group.t Backpatched.t)
                    Fieldslib.Field.t ->
                    Execution_context.t -> Work_group.t Backpatched.t -> 'a) ->
        monitor:((Execution_context.t,
                  Execution_context.t Execution_context.Monitor.t_
                  Backpatched.t)
                 Fieldslib.Field.t ->
                 Execution_context.t ->
                 Execution_context.t Execution_context.Monitor.t_
                 Backpatched.t -> 'b) ->
        priority:((Execution_context.t, Priority.t) Fieldslib.Field.t ->
                  Execution_context.t -> Priority.t -> 'c) ->
        backtrace_history:((Execution_context.t, Core.Std.Backtrace.t list)
                           Fieldslib.Field.t ->
                           Execution_context.t ->
                           Core.Std.Backtrace.t list -> 'd) ->
        'd
      val fold :
        Execution_context.t ->
        init:'->
        work_group:('->
                    (Execution_context.t, Work_group.t Backpatched.t)
                    Fieldslib.Field.t ->
                    Execution_context.t -> Work_group.t Backpatched.t -> 'b) ->
        monitor:('->
                 (Execution_context.t,
                  Execution_context.t Execution_context.Monitor.t_
                  Backpatched.t)
                 Fieldslib.Field.t ->
                 Execution_context.t ->
                 Execution_context.t Execution_context.Monitor.t_
                 Backpatched.t -> 'c) ->
        priority:('->
                  (Execution_context.t, Priority.t) Fieldslib.Field.t ->
                  Execution_context.t -> Priority.t -> 'd) ->
        backtrace_history:('->
                           (Execution_context.t, Core.Std.Backtrace.t list)
                           Fieldslib.Field.t ->
                           Execution_context.t ->
                           Core.Std.Backtrace.t list -> 'e) ->
        'e
    end
end