sig
  exception Bad of string
  type strand = Biocaml_gff.strand = Sense | Antisense | Unknown | Unstranded
  type attribute =
    Biocaml_gff.attribute =
      TagValue of string * string
    | Something of string
  type row =
    Biocaml_gff.row = {
    chr : string;
    source : string;
    feature : string;
    pos : int * int;
    score : float option;
    strand : strand;
    phase : int option;
    attributes : attribute list;
  }
  type t = Biocaml_gff.t
  val of_file :
    ?chr_map:(string -> string) ->
    ?version:int -> ?strict:bool -> string -> t
  val of_list : row list -> t
  val fold : ('-> row -> 'a) -> '-> t -> 'a
  val iter : (row -> unit) -> t -> unit
  val fold_file :
    ?version:int -> ?strict:bool -> ('-> row -> 'a) -> '-> string -> 'a
  val iter_file :
    ?version:int -> ?strict:bool -> (row -> unit) -> string -> unit
  val to_list : t -> row list
  val enum : t -> row BatEnum.t
  val to_map : t -> row list Biocaml_std.StringMap.t
  val map_of_file :
    ?version:int ->
    ?strict:bool -> string -> row list Biocaml_std.StringMap.t
  val row_to_string : ?version:int -> row -> string
  val to_channel : ?version:int -> t -> out_channel -> unit
  val to_file : ?version:int -> t -> string -> unit
  val attribute_names : row -> string list
  val get_attribute : row -> string -> string
  val get_attributel : row -> string -> string list
  val has_attribute : row -> string -> bool
  val add_attribute : string -> string -> row -> row
  val set_attribute : string -> string -> row -> row
  val delete_attribute : string -> row -> row
  val index_by_attribute : string -> t -> (string, row list) Hashtbl.t
end