sig
  type file_type =
      [ `Asf
      | `Autodetect
      | `Flac
      | `Mp4
      | `Mpc
      | `Mpeg
      | `OggFlac
      | `OggVorbis
      | `Speex
      | `TrueAudio
      | `WavPack ]
  type 'a file_tag constraint 'a = [< Taglib.File.file_type ]
  type 'a file = 'Taglib.File.file_tag Taglib.t
    constraint 'a = [< Taglib.File.file_type ]
  exception Closed
  exception Not_implemented
  exception Invalid_file
  val open_file :
    Taglib.File.file_type -> string -> Taglib.File.file_type Taglib.File.file
  val close_file : Taglib.File.file_type Taglib.File.file -> unit
  val file_save : Taglib.File.file_type Taglib.File.file -> bool
  val file_type :
    Taglib.File.file_type Taglib.File.file -> Taglib.File.file_type
  val properties :
    Taglib.File.file_type Taglib.File.file -> (string, string list) Hashtbl.t
  val set_properties :
    Taglib.File.file_type Taglib.File.file ->
    (string, string list) Hashtbl.t -> unit
  val audioproperties_length : Taglib.File.file_type Taglib.File.file -> int
  val audioproperties_bitrate : Taglib.File.file_type Taglib.File.file -> int
  val audioproperties_samplerate :
    Taglib.File.file_type Taglib.File.file -> int
  val audioproperties_channels :
    Taglib.File.file_type Taglib.File.file -> int
end