sig
  type t =
      [ `browser of
          [ `hide of [ `all ]
          | `position of string * int * int
          | `unknown of string ]
      | `comment of string
      | `track of (string * string) list ]
  type 'a content = [ `content of 'a ]
  type parse_error =
      [ `incomplete_input of Biocaml_pos.t * string list * string option
      | `wrong_browser_position of Biocaml_pos.t * string
      | `wrong_key_value_format of (string * string) list * string * string ]
  module Transform :
    sig
      val string_to_string_content :
        ?filename:string ->
        unit ->
        (string,
         ([ `browser of
              [ `hide of [ `all ]
              | `position of string * int * int
              | `unknown of string ]
          | `comment of string
          | `content of string
          | `track of (string * string) list ], Biocaml_track.parse_error)
         Core.Result.t)
        Biocaml_transform.t
      val string_content_to_string :
        ?add_content_new_line:bool ->
        unit ->
        ([ `browser of
             [ `hide of [ `all ]
             | `position of string * int * int
             | `unknown of string ]
         | `comment of string
         | `content of string
         | `track of (string * string) list ], string)
        Biocaml_transform.t
      val string_to_wig :
        ?filename:string ->
        unit ->
        (string,
         ([ `bed_graph_value of Biocaml_wig.bed_graph_value
          | `browser of
              [ `hide of [ `all ]
              | `position of string * int * int
              | `unknown of string ]
          | `comment of string
          | `fixed_step_state_change of string * int * int * int option
          | `fixed_step_value of float
          | `track of (string * string) list
          | `variable_step_state_change of string * int option
          | `variable_step_value of int * float ],
          [ `cannot_parse_key_values of Biocaml_pos.t * string
          | `empty_line of Biocaml_pos.t
          | `incomplete_input of Biocaml_pos.t * string list * string option
          | `missing_chrom_value of Biocaml_pos.t * string
          | `missing_start_value of Biocaml_pos.t * string
          | `missing_step_value of Biocaml_pos.t * string
          | `unrecognizable_line of Biocaml_pos.t * string list
          | `wrong_bed_graph_value of Biocaml_pos.t * string
          | `wrong_browser_position of Biocaml_pos.t * string
          | `wrong_fixed_step_value of Biocaml_pos.t * string
          | `wrong_key_value_format of
              (string * string) list * string * string
          | `wrong_span_value of Biocaml_pos.t * string
          | `wrong_start_value of Biocaml_pos.t * string
          | `wrong_step_value of Biocaml_pos.t * string
          | `wrong_variable_step_value of Biocaml_pos.t * string ])
         Core.Result.t)
        Biocaml_transform.t
      val wig_to_string :
        unit ->
        ([ `bed_graph_value of Biocaml_wig.bed_graph_value
         | `browser of
             [ `hide of [ `all ]
             | `position of string * int * int
             | `unknown of string ]
         | `comment of string
         | `fixed_step_state_change of string * int * int * int option
         | `fixed_step_value of float
         | `track of (string * string) list
         | `variable_step_state_change of string * int option
         | `variable_step_value of int * float ], string)
        Biocaml_transform.t
      val string_to_gff :
        ?filename:string ->
        ?tags:Biocaml_gff.tag list ->
        unit ->
        (string,
         ([ `browser of
              [ `hide of [ `all ]
              | `position of string * int * int
              | `unknown of string ]
          | `comment of string
          | `record of Biocaml_gff.t
          | `track of (string * string) list ],
          [ `cannot_parse_float of Biocaml_pos.t * string
          | `cannot_parse_int of Biocaml_pos.t * string
          | `cannot_parse_strand of Biocaml_pos.t * string
          | `cannot_parse_string of Biocaml_pos.t * string
          | `empty_line of Biocaml_pos.t
          | `incomplete_input of Biocaml_pos.t * string list * string option
          | `wrong_attributes of Biocaml_pos.t * string
          | `wrong_browser_position of Biocaml_pos.t * string
          | `wrong_key_value_format of
              (string * string) list * string * string
          | `wrong_row of Biocaml_pos.t * string
          | `wrong_url_escaping of Biocaml_pos.t * string ])
         Core.Result.t)
        Biocaml_transform.t
      val gff_to_string :
        ?tags:Biocaml_gff.tag list ->
        unit ->
        ([ `browser of
             [ `hide of [ `all ]
             | `position of string * int * int
             | `unknown of string ]
         | `comment of string
         | `record of Biocaml_gff.t
         | `track of (string * string) list ], string)
        Biocaml_transform.t
      val string_to_bed :
        ?filename:string ->
        ?more_columns:Biocaml_bed.parsing_spec ->
        unit ->
        (string,
         ([ `browser of
              [ `hide of [ `all ]
              | `position of string * int * int
              | `unknown of string ]
          | `comment of string
          | `content of Biocaml_bed.item
          | `track of (string * string) list ],
          [ `bed of Biocaml_bed.Error.parsing_base
          | `incomplete_input of Biocaml_pos.t * string list * string option
          | `wrong_browser_position of Biocaml_pos.t * string
          | `wrong_key_value_format of
              (string * string) list * string * string ])
         Core.Result.t)
        Biocaml_transform.t
      val bed_to_string :
        unit ->
        ([ `browser of
             [ `hide of [ `all ]
             | `position of string * int * int
             | `unknown of string ]
         | `comment of string
         | `content of Biocaml_bed.item
         | `track of (string * string) list ], string)
        Biocaml_transform.t
    end
end