sig
  type raw_bam =
      [ `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 ]
  type parse_optional =
      [ `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 ]
  type parse_cigar = [ `wrong_cigar of string | `wrong_cigar_length of int ]
  type raw_to_item =
      [ `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 ]
  type item_to_raw =
      [ `cannot_get_sequence of Biocaml_sam_deprecated.alignment
      | `header_item_not_first of string
      | `reference_name_not_found of
          Biocaml_sam_deprecated.alignment * string ]
  type t =
      [ `cannot_get_sequence of Biocaml_sam_deprecated.alignment
      | `header_item_not_first of string
      | `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
      | `read_name_not_null_terminated of string
      | `reference_information_name_not_null_terminated of string
      | `reference_information_overflow of int * string
      | `reference_name_not_found of
          Biocaml_sam_deprecated.alignment * string
      | `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_int32 of string
      | `wrong_magic_number of string
      | `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_bam_of_sexp : Sexplib.Sexp.t -> Biocaml_bam.Error.raw_bam
  val sexp_of_raw_bam : Biocaml_bam.Error.raw_bam -> Sexplib.Sexp.t
  val parse_optional_of_sexp :
    Sexplib.Sexp.t -> Biocaml_bam.Error.parse_optional
  val sexp_of_parse_optional :
    Biocaml_bam.Error.parse_optional -> Sexplib.Sexp.t
  val parse_cigar_of_sexp : Sexplib.Sexp.t -> Biocaml_bam.Error.parse_cigar
  val sexp_of_parse_cigar : Biocaml_bam.Error.parse_cigar -> Sexplib.Sexp.t
  val raw_to_item_of_sexp : Sexplib.Sexp.t -> Biocaml_bam.Error.raw_to_item
  val sexp_of_raw_to_item : Biocaml_bam.Error.raw_to_item -> Sexplib.Sexp.t
  val item_to_raw_of_sexp : Sexplib.Sexp.t -> Biocaml_bam.Error.item_to_raw
  val sexp_of_item_to_raw : Biocaml_bam.Error.item_to_raw -> Sexplib.Sexp.t
  val t_of_sexp : Sexplib.Sexp.t -> Biocaml_bam.Error.t
  val sexp_of_t : Biocaml_bam.Error.t -> Sexplib.Sexp.t
end