sig
  type file_name = string
  type dir_name = string
  type file_extension = string
  type module_name = string
  val careful_open_out : File.file_name -> Pervasives.out_channel
  val careful_close_out : Pervasives.out_channel -> unit
  exception Unknown_file_extension of string
  val change_extension :
    File.file_extension ->
    File.file_extension -> File.file_name -> File.file_name
  val change_mlm_extension :
    File.file_extension -> File.file_name -> File.file_name
  val create_lexbuf_from_file : File.file_name -> Lexing.lexbuf
  val get_search_path : unit -> File.dir_name list
  val add_dir_to_search_path : File.dir_name -> unit
  val search_mli_file_for_module : File.module_name -> File.file_name
  val search_ml_file_for_module : File.module_name -> File.file_name
  val module_of_mli_file : File.file_name -> File.module_name
  val parse_ml_file : File.file_name -> Parsetree.structure_item list
  val parse_mli_file : File.file_name -> Parsetree.signature_item list
end