sig
  type t =
    Execution_context.t = {
    monitor : Raw_monitor.t;
    priority : Priority.t;
    local_storage : Core.Std.Univ_map.t;
    backtrace_history : Core.Std.Backtrace.t list;
    mutable kill_index : Kill_index.t;
  }
  val kill_index : t -> Kill_index.t
  val set_kill_index : t -> Kill_index.t -> unit
  val backtrace_history : t -> Core.Std.Backtrace.t list
  val local_storage : t -> Core.Std.Univ_map.t
  val priority : t -> Priority.t
  val monitor : t -> Raw_monitor.t
  module Fields :
    sig
      val names : string list
      val kill_index : (t, Kill_index.t) Fieldslib.Field.t
      val backtrace_history :
        (t, Core.Std.Backtrace.t list) Fieldslib.Field.t
      val local_storage : (t, Core.Std.Univ_map.t) Fieldslib.Field.t
      val priority : (t, Priority.t) Fieldslib.Field.t
      val monitor : (t, Raw_monitor.t) Fieldslib.Field.t
      val fold :
        init:'acc__ ->
        monitor:('acc__ -> (t, Raw_monitor.t) Fieldslib.Field.t -> 'acc__) ->
        priority:('acc__ -> (t, Priority.t) Fieldslib.Field.t -> 'acc__) ->
        local_storage:('acc__ ->
                       (t, Core.Std.Univ_map.t) Fieldslib.Field.t -> 'acc__) ->
        backtrace_history:('acc__ ->
                           (t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
                           'acc__) ->
        kill_index:('acc__ -> (t, Kill_index.t) Fieldslib.Field.t -> 'acc__) ->
        'acc__
      val make_creator :
        monitor:((t, Raw_monitor.t) Fieldslib.Field.t ->
                 'compile_acc__ ->
                 ('input__ -> Raw_monitor.t) * 'compile_acc__) ->
        priority:((t, Priority.t) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> Priority.t) * 'compile_acc__) ->
        local_storage:((t, Core.Std.Univ_map.t) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> Core.Std.Univ_map.t) * 'compile_acc__) ->
        backtrace_history:((t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> Core.Std.Backtrace.t list) *
                           'compile_acc__) ->
        kill_index:((t, Kill_index.t) Fieldslib.Field.t ->
                    'compile_acc__ ->
                    ('input__ -> Kill_index.t) * 'compile_acc__) ->
        'compile_acc__ -> ('input__ -> t) * 'compile_acc__
      val create :
        monitor:Raw_monitor.t ->
        priority:Priority.t ->
        local_storage:Core.Std.Univ_map.t ->
        backtrace_history:Core.Std.Backtrace.t list ->
        kill_index:Kill_index.t -> t
      val map :
        monitor:((t, Raw_monitor.t) Fieldslib.Field.t -> Raw_monitor.t) ->
        priority:((t, Priority.t) Fieldslib.Field.t -> Priority.t) ->
        local_storage:((t, Core.Std.Univ_map.t) Fieldslib.Field.t ->
                       Core.Std.Univ_map.t) ->
        backtrace_history:((t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
                           Core.Std.Backtrace.t list) ->
        kill_index:((t, Kill_index.t) Fieldslib.Field.t -> Kill_index.t) -> t
      val iter :
        monitor:((t, Raw_monitor.t) Fieldslib.Field.t -> unit) ->
        priority:((t, Priority.t) Fieldslib.Field.t -> unit) ->
        local_storage:((t, Core.Std.Univ_map.t) Fieldslib.Field.t -> unit) ->
        backtrace_history:((t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
                           unit) ->
        kill_index:((t, Kill_index.t) Fieldslib.Field.t -> unit) -> unit
      val for_all :
        monitor:((t, Raw_monitor.t) Fieldslib.Field.t -> bool) ->
        priority:((t, Priority.t) Fieldslib.Field.t -> bool) ->
        local_storage:((t, Core.Std.Univ_map.t) Fieldslib.Field.t -> bool) ->
        backtrace_history:((t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
                           bool) ->
        kill_index:((t, Kill_index.t) Fieldslib.Field.t -> bool) -> bool
      val exists :
        monitor:((t, Raw_monitor.t) Fieldslib.Field.t -> bool) ->
        priority:((t, Priority.t) Fieldslib.Field.t -> bool) ->
        local_storage:((t, Core.Std.Univ_map.t) Fieldslib.Field.t -> bool) ->
        backtrace_history:((t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
                           bool) ->
        kill_index:((t, Kill_index.t) Fieldslib.Field.t -> bool) -> bool
      val to_list :
        monitor:((t, Raw_monitor.t) Fieldslib.Field.t -> 'elem__) ->
        priority:((t, Priority.t) Fieldslib.Field.t -> 'elem__) ->
        local_storage:((t, Core.Std.Univ_map.t) Fieldslib.Field.t -> 'elem__) ->
        backtrace_history:((t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
                           'elem__) ->
        kill_index:((t, Kill_index.t) Fieldslib.Field.t -> 'elem__) ->
        'elem__ list
      val map_poly :
        ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
        'x0 list
      module Direct :
        sig
          val iter :
            t ->
            monitor:((t, Raw_monitor.t) Fieldslib.Field.t ->
                     t -> Raw_monitor.t -> unit) ->
            priority:((t, Priority.t) Fieldslib.Field.t ->
                      t -> Priority.t -> unit) ->
            local_storage:((t, Core.Std.Univ_map.t) Fieldslib.Field.t ->
                           t -> Core.Std.Univ_map.t -> unit) ->
            backtrace_history:((t, Core.Std.Backtrace.t list)
                               Fieldslib.Field.t ->
                               t -> Core.Std.Backtrace.t list -> unit) ->
            kill_index:((t, Kill_index.t) Fieldslib.Field.t ->
                        t -> Kill_index.t -> unit) ->
            unit
          val fold :
            t ->
            init:'acc__ ->
            monitor:('acc__ ->
                     (t, Raw_monitor.t) Fieldslib.Field.t ->
                     t -> Raw_monitor.t -> 'acc__) ->
            priority:('acc__ ->
                      (t, Priority.t) Fieldslib.Field.t ->
                      t -> Priority.t -> 'acc__) ->
            local_storage:('acc__ ->
                           (t, Core.Std.Univ_map.t) Fieldslib.Field.t ->
                           t -> Core.Std.Univ_map.t -> 'acc__) ->
            backtrace_history:('acc__ ->
                               (t, Core.Std.Backtrace.t list)
                               Fieldslib.Field.t ->
                               t -> Core.Std.Backtrace.t list -> 'acc__) ->
            kill_index:('acc__ ->
                        (t, Kill_index.t) Fieldslib.Field.t ->
                        t -> Kill_index.t -> 'acc__) ->
            'acc__
        end
    end
  val invariant : t Core_kernel.Invariant_intf.inv
  val main : t
  val create_like :
    ?monitor:Raw_monitor.t ->
    ?priority:Priority.t -> ?local_storage:Core.Std.Univ_map.t -> t -> t
  val find_local : t -> 'Core.Std.Univ_map.Key.t -> 'a option
  val with_local : t -> 'Core.Std.Univ_map.Key.t -> 'a option -> t
  val record_backtrace : t -> t
  val sexp_of_t : t -> Sexplib.Sexp.t
end