module Transform: sig .. end
type [ `read_name_not_null_terminated of string
       | `reference_information_name_not_null_terminated of string
       | `reference_information_overflow of int * string
       | `wrong_int32 of string
       | `wrong_magic_number of string ] 
val string_to_raw : ?zlib_buffer_size:int ->
       unit ->
       (string,
        (Biocaml_bam.raw_item,
         [> `bam of raw_bam_error
          | `unzip of Biocaml_zip.Transform.unzip_error ])
        Core.Result.t)
       Biocaml_transform.t
type [ `wrong_auxiliary_data of
           [ `array_size of int
           | `null_terminated_hexarray
           | `null_terminated_string
           | `out_of_bounds
           | `unknown_type of char
           | `wrong_int32 of string ] * string ] 
val parse_optional : ?pos:int ->
       ?len:int ->
       string ->
       (Biocaml_sam.optional_content, parse_optional_error)
       Core.Result.t
type [ `wrong_cigar of string | `wrong_cigar_length of int ] 
val parse_cigar : ?pos:int ->
       ?len:int ->
       string ->
       (Biocaml_sam.cigar_op array, parse_cigar_error)
       Core.Result.t
type [ `header_line_not_first of int
       | `header_line_without_version of (string * string) list
       | `header_line_wrong_sorting of string
       | `invalid_header_tag of int * string
       | `invalid_tag_value_list of int * string list
       | `reference_sequence_not_found of Biocaml_bam.raw_alignment
       | `wrong_auxiliary_data of
           [ `array_size of int
           | `null_terminated_hexarray
           | `null_terminated_string
           | `out_of_bounds
           | `unknown_type of char
           | `wrong_int32 of string ] * string
       | `wrong_cigar of string
       | `wrong_cigar_length of int
       | `wrong_flag of Biocaml_bam.raw_alignment
       | `wrong_mapq of Biocaml_bam.raw_alignment
       | `wrong_pnext of Biocaml_bam.raw_alignment
       | `wrong_pos of Biocaml_bam.raw_alignment
       | `wrong_qname of Biocaml_bam.raw_alignment
       | `wrong_tlen of Biocaml_bam.raw_alignment ] 
val raw_to_item : unit ->
       (Biocaml_bam.raw_item,
        (Biocaml_sam.item, [> raw_to_item_error ])
        Core.Result.t)
       Biocaml_transform.t
type [ `cannot_get_sequence of Biocaml_sam.alignment
       | `header_line_not_first of string
       | `reference_name_not_found of Biocaml_sam.alignment * string ] 
val item_to_raw : unit ->
       (Biocaml_sam.item,
        (Biocaml_bam.raw_item, item_to_raw_error)
        Core.Result.t)
       Biocaml_transform.t
val raw_to_string : ?zlib_buffer_size:int ->
       unit -> (Biocaml_bam.raw_item, string) Biocaml_transform.t
val raw_bam_error_of_sexp : Sexplib.Sexp.t -> raw_bam_error
val raw_bam_error_of_sexp__ : Sexplib.Sexp.t -> raw_bam_error
val sexp_of_raw_bam_error : raw_bam_error -> Sexplib.Sexp.t
val parse_optional_error_of_sexp : Sexplib.Sexp.t -> parse_optional_error
val parse_optional_error_of_sexp__ : Sexplib.Sexp.t -> parse_optional_error
val sexp_of_parse_optional_error : parse_optional_error -> Sexplib.Sexp.t
val parse_cigar_error_of_sexp : Sexplib.Sexp.t -> parse_cigar_error
val parse_cigar_error_of_sexp__ : Sexplib.Sexp.t -> parse_cigar_error
val sexp_of_parse_cigar_error : parse_cigar_error -> Sexplib.Sexp.t
val raw_to_item_error_of_sexp : Sexplib.Sexp.t -> raw_to_item_error
val raw_to_item_error_of_sexp__ : Sexplib.Sexp.t -> raw_to_item_error
val sexp_of_raw_to_item_error : raw_to_item_error -> Sexplib.Sexp.t
val item_to_raw_error_of_sexp : Sexplib.Sexp.t -> item_to_raw_error
val item_to_raw_error_of_sexp__ : Sexplib.Sexp.t -> item_to_raw_error
val sexp_of_item_to_raw_error : item_to_raw_error -> Sexplib.Sexp.t