sig
  type char_seq = string
  type int_seq = int list
  type 'a item = 'Biocaml_fasta.item = { header : string; sequence : 'a; }
  module Error :
    sig
      type string_to_raw_item =
          [ `empty_line of Biocaml_pos.t
          | `incomplete_input of Biocaml_pos.t * string list * string option
          | `malformed_partial_sequence of string ]
      type t =
          [ `empty_line of Biocaml_pos.t
          | `incomplete_input of Biocaml_pos.t * string list * string option
          | `malformed_partial_sequence of string
          | `unnamed_char_seq of char_seq
          | `unnamed_int_seq of int_seq ]
      val sexp_of_string_to_raw_item : string_to_raw_item -> Sexplib.Sexp.t
      val string_to_raw_item_of_sexp : Sexplib.Sexp.t -> string_to_raw_item
      val string_to_raw_item_of_sexp__ : Sexplib.Sexp.t -> string_to_raw_item
      val sexp_of_t : t -> Sexplib.Sexp.t
      val t_of_sexp : Sexplib.Sexp.t -> t
      val t_of_sexp__ : Sexplib.Sexp.t -> t
    end
  exception Error of Error.t
  val in_channel_to_char_seq_item_stream :
    ?buffer_size:int ->
    ?filename:string ->
    ?pedantic:bool ->
    ?sharp_comments:bool ->
    ?semicolon_comments:bool -> in_channel -> char_seq item Stream.t
  val in_channel_to_int_seq_item_stream :
    ?buffer_size:int ->
    ?filename:string ->
    ?pedantic:bool ->
    ?sharp_comments:bool ->
    ?semicolon_comments:bool -> in_channel -> int_seq item Stream.t
  module Result :
    sig
      val in_channel_to_char_seq_item_stream :
        ?buffer_size:int ->
        ?filename:string ->
        ?pedantic:bool ->
        ?sharp_comments:bool ->
        ?semicolon_comments:bool ->
        in_channel -> (char_seq item, Error.t) Core.Result.t Stream.t
      val in_channel_to_int_seq_item_stream :
        ?buffer_size:int ->
        ?filename:string ->
        ?pedantic:bool ->
        ?sharp_comments:bool ->
        ?semicolon_comments:bool ->
        in_channel -> (int_seq item, Error.t) Core.Result.t Stream.t
    end
  module Transform :
    sig
      type 'a raw_item =
          [ `comment of string | `header of string | `partial_sequence of 'a ]
      val string_to_char_seq_raw_item :
        ?filename:string ->
        ?pedantic:bool ->
        ?sharp_comments:bool ->
        ?semicolon_comments:bool ->
        unit ->
        (string, (char_seq raw_item, Error.t) Core.Result.t)
        Biocaml_transform.t
      val char_seq_raw_item_to_item :
        unit ->
        (char_seq raw_item,
         (char_seq item, [ `unnamed_char_seq of char_seq ]) Core.Result.t)
        Biocaml_transform.t
      val char_seq_item_to_raw_item :
        ?items_per_line:int ->
        unit -> (char_seq item, char_seq raw_item) Biocaml_transform.t
      val char_seq_raw_item_to_string :
        ?comment_char:char ->
        unit -> (char_seq raw_item, string) Biocaml_transform.t
      val string_to_int_seq_raw_item :
        ?filename:string ->
        ?pedantic:bool ->
        ?sharp_comments:bool ->
        ?semicolon_comments:bool ->
        unit ->
        (string, (int_seq raw_item, Error.t) Core.Result.t)
        Biocaml_transform.t
      val int_seq_raw_item_to_item :
        unit ->
        (int_seq raw_item,
         (int_seq item, [ `unnamed_int_seq of int_seq ]) Core.Result.t)
        Biocaml_transform.t
      val int_seq_item_to_raw_item :
        ?items_per_line:int ->
        unit -> (int_seq item, int_seq raw_item) Biocaml_transform.t
      val int_seq_raw_item_to_string :
        ?comment_char:char ->
        unit -> (int_seq raw_item, string) Biocaml_transform.t
      val sexp_of_raw_item :
        ('-> Sexplib.Sexp.t) -> 'a raw_item -> Sexplib.Sexp.t
      val raw_item_of_sexp :
        (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a raw_item
      val raw_item_of_sexp__ :
        (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a raw_item
    end
  val sexp_of_char_seq : char_seq -> Sexplib.Sexp.t
  val char_seq_of_sexp : Sexplib.Sexp.t -> char_seq
  val sexp_of_int_seq : int_seq -> Sexplib.Sexp.t
  val int_seq_of_sexp : Sexplib.Sexp.t -> int_seq
  val sexp_of_item : ('-> Sexplib.Sexp.t) -> 'a item -> Sexplib.Sexp.t
  val item_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a item
end