sig
  type point_kind =
      Binding
    | Sequence
    | For
    | If_then
    | Try
    | While
    | Match
    | Class_expr
    | Class_init
    | Class_meth
    | Class_val
    | Toplevel_expr
    | Lazy_operator
  type point_definition = {
    offset : int;
    identifier : int;
    kind : Common.point_kind;
  }
  val all_point_kinds : Common.point_kind list
  val string_of_point_kind : Common.point_kind -> string
  val char_of_point_kind : Common.point_kind -> char
  val point_kind_of_char : char -> Common.point_kind
  val try_finally : '-> ('-> 'b) -> ('-> unit) -> 'b
  val try_in_channel : bool -> string -> (Stdlib.in_channel -> 'a) -> 'a
  val try_out_channel : bool -> string -> (Stdlib.out_channel -> 'a) -> 'a
  exception Invalid_file of string
  exception Unsupported_version of string
  exception Modified_file of string
  val cmp_file_of_ml_file : string -> string
  val write_runtime_data :
    Stdlib.out_channel -> (string * int array) list -> unit
  val write_points :
    Stdlib.out_channel -> Common.point_definition list -> string -> unit
  val read_runtime_data : string -> (string * int array) list
  val read_points : string -> Common.point_definition list
end