sig
  type 'a t = private {
    decls : (string * 'a) array;
    finder : int Mods.StringMap.t;
  }
  val create :
    ?forbidden:Mods.StringSet.t ->
    (string Locality.annot * 'a) array -> 'NamedDecls.t
  val size : 'NamedDecls.t -> int
  val elt_name : 'NamedDecls.t -> int -> string
  val elt_id :
    ?kind:string -> 'NamedDecls.t -> string Locality.annot -> int
  val fold : (int -> string -> '-> '-> 'a) -> '-> 'NamedDecls.t -> 'a
  val mapi :
    (int -> string -> '-> 'b) -> 'NamedDecls.t -> 'NamedDecls.t
  val print :
    sep:(Format.formatter -> unit) ->
    (int -> string -> Format.formatter -> '-> unit) ->
    Format.formatter -> 'NamedDecls.t -> unit
  val debug_print :
    (Format.formatter -> '-> unit) ->
    Format.formatter -> 'NamedDecls.t -> unit
  val to_json :
    ('-> Yojson.Basic.json) -> 'NamedDecls.t -> Yojson.Basic.json
  val of_json :
    (Yojson.Basic.json -> 'a) -> Yojson.Basic.json -> 'NamedDecls.t
end