sig   type pos = int   type range = B0.Sexp.pos * B0.Sexp.pos   type src = File of B0.Fpath.t   type loc = B0.Sexp.src * B0.Sexp.range   val pp_loc : B0.Sexp.loc B0.Fmt.t   type t = [ `Atom of string | `List of B0.Sexp.t list ] * B0.Sexp.loc   val get_atom : B0.Sexp.t -> string   val get_list : B0.Sexp.t -> B0.Sexp.t list   val of_string : src:B0.Sexp.src -> string -> B0.Sexp.t B0.result   val of_file : B0.Fpath.t -> B0.Sexp.t B0.result   val dump_locs : B0.Sexp.t B0.Fmt.t   type map = (B0.Sexp.t * B0.Sexp.loc) B0.String.Map.t * B0.Sexp.loc   type 'a key = B0.Sexp.map -> 'a   val to_string_map :     ?known:(string -> bool) ->     B0.Sexp.t -> (B0.Sexp.map * B0.Sexp.map) B0.result   val key :     ?absent:'-> (string -> B0.Sexp.t -> 'a) -> string -> 'B0.Sexp.key   val atom_key : ?absent:'-> (string -> 'a) -> string -> 'B0.Sexp.key   val list_key :     ?empty:bool ->     ?absent:'a list ->     (string -> B0.Sexp.t -> 'a) -> string -> 'a list B0.Sexp.key   val atom_list_key :     ?empty:bool ->     ?absent:'a list -> (string -> 'a) -> string -> 'a list B0.Sexp.key   val parse_atom : string -> B0.Sexp.t -> string   val parse_list : ?empty:bool -> string -> B0.Sexp.t -> B0.Sexp.t list   val parse_atom_kind : (string -> 'a) -> string -> B0.Sexp.t -> 'a   val parse_list_kind :     ?empty:bool ->     (string -> B0.Sexp.t -> 'a) -> string -> B0.Sexp.t -> 'a list end