sig
  type class_path
  val sep : char
  val class_path : string -> JFile.class_path
  val close_class_path : JFile.class_path -> unit
  val get_class :
    JFile.class_path ->
    JBasics.class_name -> JCode.jcode JClass.interface_or_class
  val get_class_low :
    JFile.class_path -> JBasics.class_name -> JClassLow.jclass
  val write_class : string -> JCode.jcode JClass.interface_or_class -> unit
  val write_class_low : string -> JClassLow.jclass -> unit
  val extract_class_name_from_file : string -> JBasics.class_name * string
  val iter :
    ?debug:bool ->
    (JCode.jcode JClass.interface_or_class -> unit) -> string -> unit
  type directories
  val make_directories : string -> JFile.directories
  val read :
    JFile.directories ->
    ('-> JCode.jcode JClass.interface_or_class -> 'a) ->
    '-> string list -> 'a
  val transform :
    JFile.directories ->
    string ->
    (JCode.jcode JClass.interface_or_class ->
     JCode.jcode JClass.interface_or_class) ->
    string list -> unit
  val read_low :
    JFile.directories ->
    ('-> JClassLow.jclass -> 'a) -> '-> string list -> 'a
  val transform_low :
    JFile.directories ->
    string -> (JClassLow.jclass -> JClassLow.jclass) -> string list -> unit
end