sig
  val names : string list
  val kill_index :
    ([< `Read | `Set_and_create ], Raw_monitor.t, Kill_index.t)
    Fieldslib.Field.t_with_perm
  val someone_is_listening :
    ([< `Read | `Set_and_create ], Raw_monitor.t, bool)
    Fieldslib.Field.t_with_perm
  val has_seen_error :
    ([< `Read | `Set_and_create ], Raw_monitor.t, bool)
    Fieldslib.Field.t_with_perm
  val error_handlers :
    ([< `Read | `Set_and_create ], Raw_monitor.t, (exn -> unit) list)
    Fieldslib.Field.t_with_perm
  val parent :
    ([< `Read | `Set_and_create ], Raw_monitor.t, Raw_monitor.t option)
    Fieldslib.Field.t_with_perm
  val id :
    ([< `Read | `Set_and_create ], Raw_monitor.t, int)
    Fieldslib.Field.t_with_perm
  val here :
    ([< `Read | `Set_and_create ], Raw_monitor.t,
     Core.Std.Source_code_position.t option)
    Fieldslib.Field.t_with_perm
  val name :
    ([< `Read | `Set_and_create ], Raw_monitor.t, Core.Std.Info.t)
    Fieldslib.Field.t_with_perm
  val make_creator :
    name:(([< `Read | `Set_and_create ], Raw_monitor.t, Core.Std.Info.t)
          Fieldslib.Field.t_with_perm -> '-> ('-> Core.Std.Info.t) * 'c) ->
    here:(([< `Read | `Set_and_create ], Raw_monitor.t,
           Core.Std.Source_code_position.t option)
          Fieldslib.Field.t_with_perm ->
          '-> ('-> Core.Std.Source_code_position.t option) * 'd) ->
    id:(([< `Read | `Set_and_create ], Raw_monitor.t, int)
        Fieldslib.Field.t_with_perm -> '-> ('-> int) * 'e) ->
    parent:(([< `Read | `Set_and_create ], Raw_monitor.t,
             Raw_monitor.t option)
            Fieldslib.Field.t_with_perm ->
            '-> ('-> Raw_monitor.t option) * 'f) ->
    error_handlers:(([< `Read | `Set_and_create ], Raw_monitor.t,
                     (exn -> unit) list)
                    Fieldslib.Field.t_with_perm ->
                    '-> ('-> (exn -> unit) list) * 'g) ->
    has_seen_error:(([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                    Fieldslib.Field.t_with_perm -> '-> ('-> bool) * 'h) ->
    someone_is_listening:(([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                          Fieldslib.Field.t_with_perm ->
                          '-> ('-> bool) * 'i) ->
    kill_index:(([< `Read | `Set_and_create ], Raw_monitor.t, Kill_index.t)
                Fieldslib.Field.t_with_perm ->
                '-> ('-> Kill_index.t) * 'j) ->
    '-> ('-> Raw_monitor.t) * 'j
  val create :
    name:Core.Std.Info.t ->
    here:Core.Std.Source_code_position.t option ->
    id:int ->
    parent:Raw_monitor.t option ->
    error_handlers:(exn -> unit) list ->
    has_seen_error:bool ->
    someone_is_listening:bool -> kill_index:Kill_index.t -> Raw_monitor.t
  val map :
    name:(([< `Read | `Set_and_create ], Raw_monitor.t, Core.Std.Info.t)
          Fieldslib.Field.t_with_perm -> Core.Std.Info.t) ->
    here:(([< `Read | `Set_and_create ], Raw_monitor.t,
           Core.Std.Source_code_position.t option)
          Fieldslib.Field.t_with_perm ->
          Core.Std.Source_code_position.t option) ->
    id:(([< `Read | `Set_and_create ], Raw_monitor.t, int)
        Fieldslib.Field.t_with_perm -> int) ->
    parent:(([< `Read | `Set_and_create ], Raw_monitor.t,
             Raw_monitor.t option)
            Fieldslib.Field.t_with_perm -> Raw_monitor.t option) ->
    error_handlers:(([< `Read | `Set_and_create ], Raw_monitor.t,
                     (exn -> unit) list)
                    Fieldslib.Field.t_with_perm -> (exn -> unit) list) ->
    has_seen_error:(([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                    Fieldslib.Field.t_with_perm -> bool) ->
    someone_is_listening:(([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                          Fieldslib.Field.t_with_perm -> bool) ->
    kill_index:(([< `Read | `Set_and_create ], Raw_monitor.t, Kill_index.t)
                Fieldslib.Field.t_with_perm -> Kill_index.t) ->
    Raw_monitor.t
  val iter :
    name:(([< `Read | `Set_and_create ], Raw_monitor.t, Core.Std.Info.t)
          Fieldslib.Field.t_with_perm -> 'a) ->
    here:(([< `Read | `Set_and_create ], Raw_monitor.t,
           Core.Std.Source_code_position.t option)
          Fieldslib.Field.t_with_perm -> 'b) ->
    id:(([< `Read | `Set_and_create ], Raw_monitor.t, int)
        Fieldslib.Field.t_with_perm -> 'c) ->
    parent:(([< `Read | `Set_and_create ], Raw_monitor.t,
             Raw_monitor.t option)
            Fieldslib.Field.t_with_perm -> 'd) ->
    error_handlers:(([< `Read | `Set_and_create ], Raw_monitor.t,
                     (exn -> unit) list)
                    Fieldslib.Field.t_with_perm -> 'e) ->
    has_seen_error:(([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                    Fieldslib.Field.t_with_perm -> 'f) ->
    someone_is_listening:(([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                          Fieldslib.Field.t_with_perm -> 'g) ->
    kill_index:(([< `Read | `Set_and_create ], Raw_monitor.t, Kill_index.t)
                Fieldslib.Field.t_with_perm -> 'h) ->
    'h
  val fold :
    init:'->
    name:('->
          ([< `Read | `Set_and_create ], Raw_monitor.t, Core.Std.Info.t)
          Fieldslib.Field.t_with_perm -> 'b) ->
    here:('->
          ([< `Read | `Set_and_create ], Raw_monitor.t,
           Core.Std.Source_code_position.t option)
          Fieldslib.Field.t_with_perm -> 'c) ->
    id:('->
        ([< `Read | `Set_and_create ], Raw_monitor.t, int)
        Fieldslib.Field.t_with_perm -> 'd) ->
    parent:('->
            ([< `Read | `Set_and_create ], Raw_monitor.t,
             Raw_monitor.t option)
            Fieldslib.Field.t_with_perm -> 'e) ->
    error_handlers:('->
                    ([< `Read | `Set_and_create ], Raw_monitor.t,
                     (exn -> unit) list)
                    Fieldslib.Field.t_with_perm -> 'f) ->
    has_seen_error:('->
                    ([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                    Fieldslib.Field.t_with_perm -> 'g) ->
    someone_is_listening:('->
                          ([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                          Fieldslib.Field.t_with_perm -> 'h) ->
    kill_index:('->
                ([< `Read | `Set_and_create ], Raw_monitor.t, Kill_index.t)
                Fieldslib.Field.t_with_perm -> 'i) ->
    'i
  val map_poly :
    ([< `Read | `Set_and_create ], Raw_monitor.t, 'a) Fieldslib.Field.user ->
    'a list
  val for_all :
    name:(([< `Read | `Set_and_create ], Raw_monitor.t, Core.Std.Info.t)
          Fieldslib.Field.t_with_perm -> bool) ->
    here:(([< `Read | `Set_and_create ], Raw_monitor.t,
           Core.Std.Source_code_position.t option)
          Fieldslib.Field.t_with_perm -> bool) ->
    id:(([< `Read | `Set_and_create ], Raw_monitor.t, int)
        Fieldslib.Field.t_with_perm -> bool) ->
    parent:(([< `Read | `Set_and_create ], Raw_monitor.t,
             Raw_monitor.t option)
            Fieldslib.Field.t_with_perm -> bool) ->
    error_handlers:(([< `Read | `Set_and_create ], Raw_monitor.t,
                     (exn -> unit) list)
                    Fieldslib.Field.t_with_perm -> bool) ->
    has_seen_error:(([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                    Fieldslib.Field.t_with_perm -> bool) ->
    someone_is_listening:(([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                          Fieldslib.Field.t_with_perm -> bool) ->
    kill_index:(([< `Read | `Set_and_create ], Raw_monitor.t, Kill_index.t)
                Fieldslib.Field.t_with_perm -> bool) ->
    bool
  val exists :
    name:(([< `Read | `Set_and_create ], Raw_monitor.t, Core.Std.Info.t)
          Fieldslib.Field.t_with_perm -> bool) ->
    here:(([< `Read | `Set_and_create ], Raw_monitor.t,
           Core.Std.Source_code_position.t option)
          Fieldslib.Field.t_with_perm -> bool) ->
    id:(([< `Read | `Set_and_create ], Raw_monitor.t, int)
        Fieldslib.Field.t_with_perm -> bool) ->
    parent:(([< `Read | `Set_and_create ], Raw_monitor.t,
             Raw_monitor.t option)
            Fieldslib.Field.t_with_perm -> bool) ->
    error_handlers:(([< `Read | `Set_and_create ], Raw_monitor.t,
                     (exn -> unit) list)
                    Fieldslib.Field.t_with_perm -> bool) ->
    has_seen_error:(([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                    Fieldslib.Field.t_with_perm -> bool) ->
    someone_is_listening:(([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                          Fieldslib.Field.t_with_perm -> bool) ->
    kill_index:(([< `Read | `Set_and_create ], Raw_monitor.t, Kill_index.t)
                Fieldslib.Field.t_with_perm -> bool) ->
    bool
  val to_list :
    name:(([< `Read | `Set_and_create ], Raw_monitor.t, Core.Std.Info.t)
          Fieldslib.Field.t_with_perm -> 'a) ->
    here:(([< `Read | `Set_and_create ], Raw_monitor.t,
           Core.Std.Source_code_position.t option)
          Fieldslib.Field.t_with_perm -> 'a) ->
    id:(([< `Read | `Set_and_create ], Raw_monitor.t, int)
        Fieldslib.Field.t_with_perm -> 'a) ->
    parent:(([< `Read | `Set_and_create ], Raw_monitor.t,
             Raw_monitor.t option)
            Fieldslib.Field.t_with_perm -> 'a) ->
    error_handlers:(([< `Read | `Set_and_create ], Raw_monitor.t,
                     (exn -> unit) list)
                    Fieldslib.Field.t_with_perm -> 'a) ->
    has_seen_error:(([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                    Fieldslib.Field.t_with_perm -> 'a) ->
    someone_is_listening:(([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                          Fieldslib.Field.t_with_perm -> 'a) ->
    kill_index:(([< `Read | `Set_and_create ], Raw_monitor.t, Kill_index.t)
                Fieldslib.Field.t_with_perm -> 'a) ->
    'a list
  module Direct :
    sig
      val iter :
        Raw_monitor.t ->
        name:(([< `Read | `Set_and_create ], Raw_monitor.t, Core.Std.Info.t)
              Fieldslib.Field.t_with_perm ->
              Raw_monitor.t -> Core.Std.Info.t -> 'a) ->
        here:(([< `Read | `Set_and_create ], Raw_monitor.t,
               Core.Std.Source_code_position.t option)
              Fieldslib.Field.t_with_perm ->
              Raw_monitor.t -> Core.Std.Source_code_position.t option -> 'b) ->
        id:(([< `Read | `Set_and_create ], Raw_monitor.t, int)
            Fieldslib.Field.t_with_perm -> Raw_monitor.t -> int -> 'c) ->
        parent:(([< `Read | `Set_and_create ], Raw_monitor.t,
                 Raw_monitor.t option)
                Fieldslib.Field.t_with_perm ->
                Raw_monitor.t -> Raw_monitor.t option -> 'd) ->
        error_handlers:(([< `Read | `Set_and_create ], Raw_monitor.t,
                         (exn -> unit) list)
                        Fieldslib.Field.t_with_perm ->
                        Raw_monitor.t -> (exn -> unit) list -> 'e) ->
        has_seen_error:(([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                        Fieldslib.Field.t_with_perm ->
                        Raw_monitor.t -> bool -> 'f) ->
        someone_is_listening:(([< `Read | `Set_and_create ], Raw_monitor.t,
                               bool)
                              Fieldslib.Field.t_with_perm ->
                              Raw_monitor.t -> bool -> 'g) ->
        kill_index:(([< `Read | `Set_and_create ], Raw_monitor.t,
                     Kill_index.t)
                    Fieldslib.Field.t_with_perm ->
                    Raw_monitor.t -> Kill_index.t -> 'h) ->
        'h
      val fold :
        Raw_monitor.t ->
        init:'->
        name:('->
              ([< `Read | `Set_and_create ], Raw_monitor.t, Core.Std.Info.t)
              Fieldslib.Field.t_with_perm ->
              Raw_monitor.t -> Core.Std.Info.t -> 'b) ->
        here:('->
              ([< `Read | `Set_and_create ], Raw_monitor.t,
               Core.Std.Source_code_position.t option)
              Fieldslib.Field.t_with_perm ->
              Raw_monitor.t -> Core.Std.Source_code_position.t option -> 'c) ->
        id:('->
            ([< `Read | `Set_and_create ], Raw_monitor.t, int)
            Fieldslib.Field.t_with_perm -> Raw_monitor.t -> int -> 'd) ->
        parent:('->
                ([< `Read | `Set_and_create ], Raw_monitor.t,
                 Raw_monitor.t option)
                Fieldslib.Field.t_with_perm ->
                Raw_monitor.t -> Raw_monitor.t option -> 'e) ->
        error_handlers:('->
                        ([< `Read | `Set_and_create ], Raw_monitor.t,
                         (exn -> unit) list)
                        Fieldslib.Field.t_with_perm ->
                        Raw_monitor.t -> (exn -> unit) list -> 'f) ->
        has_seen_error:('->
                        ([< `Read | `Set_and_create ], Raw_monitor.t, bool)
                        Fieldslib.Field.t_with_perm ->
                        Raw_monitor.t -> bool -> 'g) ->
        someone_is_listening:('->
                              ([< `Read | `Set_and_create ], Raw_monitor.t,
                               bool)
                              Fieldslib.Field.t_with_perm ->
                              Raw_monitor.t -> bool -> 'h) ->
        kill_index:('->
                    ([< `Read | `Set_and_create ], Raw_monitor.t,
                     Kill_index.t)
                    Fieldslib.Field.t_with_perm ->
                    Raw_monitor.t -> Kill_index.t -> 'i) ->
        'i
    end
end