sig
  type parseinfo
  val newline : unit -> unit
  val parse_error : string -> int -> int -> unit
  type parseWhat = ParseString of string | ParseFile of string
  val startParsing : Errormsg.parseWhat -> Lexing.lexbuf
  val finishParsing : unit -> unit
  val setCurrentLine : int -> unit
  val setCurrentFile : string -> unit
  val currentPattern : string Pervasives.ref
  val getPosition : unit -> int * string * int
  val push_context : (unit -> unit) Pervasives.ref
  val add_type : (string -> unit) Pervasives.ref
  val add_identifier : (string -> unit) Pervasives.ref
  val pop_context : (unit -> unit) Pervasives.ref
  val logChannel : Pervasives.out_channel Pervasives.ref
  val debugFlag : bool Pervasives.ref
  val verboseFlag : bool Pervasives.ref
  val warnFlag : bool Pervasives.ref
  val theLexbuf : Lexing.lexbuf Pervasives.ref
  exception Error
  val error : ('a, unit, Pretty.doc) format -> 'a
  val bug : ('a, unit, Pretty.doc) format -> 'a
  val unimp : ('a, unit, Pretty.doc) format -> 'a
  val s : Pretty.doc -> 'a
  val hadErrors : bool Pervasives.ref
  val warn : ('a, unit, Pretty.doc) format -> 'a
  val warnOpt : ('a, unit, Pretty.doc) format -> 'a
  val log : ('a, unit, Pretty.doc) format -> 'a
  val pushContext : (unit -> Pretty.doc) -> unit
  val popContext : unit -> unit
  val showContext : unit -> unit
  val withContext : (unit -> Pretty.doc) -> ('-> 'b) -> '-> 'b
end