sig
  module TrackLine :
    sig
      type t = Biocaml_track.TrackLine.t
      exception Bad of string
      val of_string : string -> t
      val to_string : t -> string
      val empty : t
      val set : t -> string -> string -> t
      val unset : t -> string -> t
      val find : t -> string -> string
      val mem : t -> string -> string -> bool
      val to_list : t -> (string * string) list
      val of_list : (string * string) list -> t
      val valid_wig : t -> bool
    end
  module BrowserLines :
    sig
      type t = Biocaml_track.BrowserLines.t
      exception Bad of string
      val position : string -> int -> int -> t
      val hide : string -> t
      val dense : string -> t
      val pack : string -> t
      val squish : string -> t
      val full : string -> t
      val concat : t -> t -> t
      val of_string : string -> t
      val to_string : t -> string
    end
  type block =
    Biocaml_track.block =
      B of BrowserLines.t
    | T of TrackLine.t
    | C of Biocaml_comments.t
    | Wig of Biocaml_wig.t
  type t = Biocaml_track.t
  exception Bad of string
  val to_channel : ?wig_fmt:Biocaml_wig.format -> t -> out_channel -> unit
  val to_file : ?wig_fmt:Biocaml_wig.format -> t -> string -> unit
  val to_list : t -> block list
  val of_list : block list -> t
end