Module Pre_sexp.Annot


module Annot: sig .. end


type pos = {
   line : int;
   col : int;
   offset : int;
}
type range = {
   start_pos : pos;
   end_pos : pos;
}
type t =
| Atom of range * Type.t
| List of range * t list * Type.t
type 'a conv = [ `Error of exn * t | `Result of 'a ] 
exception Conv_exn of string * exn

type stack = {
   mutable positions : pos list;
   mutable stack : t list list;
}
val get_sexp : t -> Type.t
val get_range : t -> range
exception Annot_sexp of t
val find_sexp : t -> Type.t -> t option