sig
  val logChannel : out_channel ref
  val debugFlag : bool ref
  val verboseFlag : bool ref
  val warnFlag : bool 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 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 null : ('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
  val newline : unit -> unit
  val newHline : unit -> unit
  val getPosition : unit -> int * string * int
  val getHPosition : unit -> int * string
  val setHLine : int -> unit
  val setHFile : string -> unit
  val setCurrentLine : int -> unit
  val setCurrentFile : string -> unit
  type location =
    Errormsg.location = {
    file : string;
    line : int;
    hfile : string;
    hline : int;
  }
  val d_loc : unit -> location -> Pretty.doc
  val d_hloc : unit -> location -> Pretty.doc
  val getLocation : unit -> location
  val parse_error : string -> 'a
  val locUnknown : location
  val startParsing : ?useBasename:bool -> string -> Lexing.lexbuf
  val startParsingFromString :
    ?file:string -> ?line:int -> string -> Lexing.lexbuf
  val finishParsing : unit -> unit
end