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 ]
  module Error :
    sig
      type parsing =
          [ `incomplete_input of
              Biocaml_internal_utils.Pos.t * string list * string option
          | `wrong_browser_position of Biocaml_internal_utils.Pos.t * string
          | `wrong_key_value_format of
              (string * string) list * string * string ]
      type t = Biocaml_track.Error.parsing
      val parsing_of_sexp : Sexplib.Sexp.t -> Biocaml_track.Error.parsing
      val sexp_of_parsing : Biocaml_track.Error.parsing -> Sexplib.Sexp.t
      val t_of_sexp : Sexplib.Sexp.t -> Biocaml_track.Error.t
      val sexp_of_t : Biocaml_track.Error.t -> Sexplib.Sexp.t
    end
  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.Error.parsing ])
         Biocaml_internal_utils.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_internal_utils.Pos.t * string
           | `empty_line of Biocaml_internal_utils.Pos.t
           | `incomplete_input of
               Biocaml_internal_utils.Pos.t * string list * string option
           | `missing_chrom_value of Biocaml_internal_utils.Pos.t * string
           | `missing_start_value of Biocaml_internal_utils.Pos.t * string
           | `missing_step_value of Biocaml_internal_utils.Pos.t * string
           | `unrecognizable_line of
               Biocaml_internal_utils.Pos.t * string list
           | `wrong_bed_graph_value of Biocaml_internal_utils.Pos.t * string
           | `wrong_browser_position of Biocaml_internal_utils.Pos.t * string
           | `wrong_fixed_step_value of Biocaml_internal_utils.Pos.t * string
           | `wrong_key_value_format of
               (string * string) list * string * string
           | `wrong_span_value of Biocaml_internal_utils.Pos.t * string
           | `wrong_start_value of Biocaml_internal_utils.Pos.t * string
           | `wrong_step_value of Biocaml_internal_utils.Pos.t * string
           | `wrong_variable_step_value of
               Biocaml_internal_utils.Pos.t * string ])
         Biocaml_internal_utils.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.Tags.t ->
        unit ->
        (string,
         ([ `browser of
              [ `hide of [ `all ]
              | `position of string * int * int
              | `unknown of string ]
          | `comment of string
          | `record of Biocaml_gff.record
          | `track of (string * string) list ],
          [> `cannot_parse_float of Biocaml_internal_utils.Pos.t * string
           | `cannot_parse_int of Biocaml_internal_utils.Pos.t * string
           | `cannot_parse_strand of Biocaml_internal_utils.Pos.t * string
           | `cannot_parse_string of Biocaml_internal_utils.Pos.t * string
           | `empty_line of Biocaml_internal_utils.Pos.t
           | `incomplete_input of
               Biocaml_internal_utils.Pos.t * string list * string option
           | `wrong_attributes of Biocaml_internal_utils.Pos.t * string
           | `wrong_browser_position of Biocaml_internal_utils.Pos.t * string
           | `wrong_key_value_format of
               (string * string) list * string * string
           | `wrong_row of Biocaml_internal_utils.Pos.t * string
           | `wrong_url_escaping of Biocaml_internal_utils.Pos.t * string ])
         Biocaml_internal_utils.Result.t)
        Biocaml_transform.t
      val gff_to_string :
        tags:Biocaml_gff.Tags.t ->
        unit ->
        ([ `browser of
             [ `hide of [ `all ]
             | `position of string * int * int
             | `unknown of string ]
         | `comment of string
         | `record of Biocaml_gff.record
         | `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_internal_utils.Pos.t * string list * string option
           | `wrong_browser_position of Biocaml_internal_utils.Pos.t * string
           | `wrong_key_value_format of
               (string * string) list * string * string ])
         Biocaml_internal_utils.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