sig
  type position
  val undefined_position : Positions.position
  val column : Lexing.position -> int
  val line : Lexing.position -> int
  val characters : Lexing.position -> Lexing.position -> int * int
  val start_of_position : Positions.position -> Lexing.position
  val end_of_position : Positions.position -> Lexing.position
  val join : Positions.position -> Positions.position -> Positions.position
  val lex_join : Lexing.position -> Lexing.position -> Positions.position
  val ljoinf : ('-> Positions.position) -> 'a list -> Positions.position
  val joinf : ('-> Positions.position) -> '-> '-> Positions.position
  val string_of_characters : int * int -> string
  val string_of_lex_pos : Lexing.position -> string
  val string_of_pos : Positions.position -> string
  val pos_or_undef : Positions.position option -> Positions.position
  val cpos : Lexing.lexbuf -> Positions.position
  val string_of_cpos : Lexing.lexbuf -> string
end