include Annot
type pos = Parsexp.Positions.pos = {line : int;col : int;offset : int;}type range = Parsexp.Positions.range = {start_pos : pos;end_pos : pos;}type t = Annot.t =| Atom of range * Type.t| List of range * t list * Type.ttype 'a conv = [|`Result of 'a|`Error of exn * t]
type stack = Annot.stack = {mutable positions : pos list;mutable stack : t list list;}
val get_sexp : t -> Type.tval get_range : t -> rangeval sexp_of_conv : ('a -> Type.t) -> [< `Error of exn * t | `Result of 'a ] -> Type.t
exception Annot_sexp of t
val parse : ?parse_pos:Parse_pos.t -> ?len:int -> string -> (string, Annot.t) parse_resultval parse_bigstring : ?parse_pos:Parse_pos.t -> ?len:int -> bigstring -> (bigstring, Annot.t) parse_resultval input_rev_sexps : ?parse_pos:Parse_pos.t -> ?buf:bytes -> Stdlib.in_channel -> Annot.t listval input_sexp : ?parse_pos:Parse_pos.t -> Stdlib.in_channel -> Annot.tval input_sexps : ?parse_pos:Parse_pos.t -> ?buf:bytes -> Stdlib.in_channel -> Annot.t listval of_string : string -> Annot.tval of_bigstring : bigstring -> Annot.tval load_rev_sexps : ?buf:bytes -> string -> Annot.t listval load_sexps : ?buf:bytes -> string -> Annot.t listval load_sexp : ?strict:bool -> ?buf:bytes -> string -> Annot.tval conv : (Type.t -> 'a) -> t -> [> `Error of exn * t | `Result of 'a ]val get_conv_exn : file:string -> exc:exn -> t -> exn