sig
  type error =
      Empty_line
    | Invalid_block_start of string
    | Invalid_annotation of string
    | Invalid_reference_kind of string
  exception Exception of Annotation.error
  type call = Tail | Stack | Inline
  type ident = Definition | Internal_reference | External_reference
  type t =
      Type of string
    | Call of Annotation.call
    | Ident of Annotation.ident * string
  type position = {
    filename : string;
    line : int;
    line_offset : int;
    offset : int;
  }
  type block = {
    range_start : Annotation.position;
    range_end : Annotation.position;
    elements : Annotation.t list;
  }
  type file = Annotation.block list
  val load_file : string -> Annotation.file
end