sig
  type pos =
    Pre_sexp.Annotated.pos = {
    line : int;
    col : int;
    offset : int;
  }
  type range =
    Pre_sexp.Annotated.range = {
    start_pos : Sexp_intf.S.Annotated.pos;
    end_pos : Sexp_intf.S.Annotated.pos;
  }
  type t =
    Pre_sexp.Annotated.t =
      Atom of Sexp_intf.S.Annotated.range * Type.t
    | List of Sexp_intf.S.Annotated.range * Sexp_intf.S.Annotated.t list *
        Type.t
  type 'a conv = [ `Error of exn * Sexp_intf.S.Annotated.t | `Result of 'a ]
  exception Conv_exn of string * exn
  type stack =
    Pre_sexp.Annotated.stack = {
    mutable positions : Sexp_intf.S.Annotated.pos list;
    mutable stack : Sexp_intf.S.Annotated.t list list;
  }
  val get_sexp : Sexp_intf.S.Annotated.t -> Type.t
  val get_range : Sexp_intf.S.Annotated.t -> Sexp_intf.S.Annotated.range
  val find_sexp :
    Sexp_intf.S.Annotated.t -> Type.t -> Sexp_intf.S.Annotated.t option
  val parse :
    ?parse_pos:Sexp_intf.S.Parse_pos.t ->
    ?len:int ->
    string -> (string, Sexp_intf.S.Annotated.t) Sexp_intf.S.parse_result
  val parse_bigstring :
    ?parse_pos:Sexp_intf.S.Parse_pos.t ->
    ?len:int ->
    Sexp_intf.S.bigstring ->
    (Sexp_intf.S.bigstring, Sexp_intf.S.Annotated.t) Sexp_intf.S.parse_result
  val input_sexp :
    ?parse_pos:Sexp_intf.S.Parse_pos.t ->
    Pervasives.in_channel -> Sexp_intf.S.Annotated.t
  val input_sexps :
    ?parse_pos:Sexp_intf.S.Parse_pos.t ->
    ?buf:string -> Pervasives.in_channel -> Sexp_intf.S.Annotated.t list
  val input_rev_sexps :
    ?parse_pos:Sexp_intf.S.Parse_pos.t ->
    ?buf:string -> Pervasives.in_channel -> Sexp_intf.S.Annotated.t list
  val load_sexp :
    ?strict:bool -> ?buf:string -> string -> Sexp_intf.S.Annotated.t
  val load_sexps : ?buf:string -> string -> Sexp_intf.S.Annotated.t list
  val load_rev_sexps : ?buf:string -> string -> Sexp_intf.S.Annotated.t list
  val of_string : string -> Sexp_intf.S.Annotated.t
  val of_bigstring : Sexp_intf.S.bigstring -> Sexp_intf.S.Annotated.t
  val conv :
    (Type.t -> 'a) ->
    Sexp_intf.S.Annotated.t -> 'Sexp_intf.S.Annotated.conv
  val get_conv_exn : file:string -> exc:exn -> Sexp_intf.S.Annotated.t -> exn
end