sig
  type header = Biocaml_fasta.header
  type item =
    Biocaml_fasta.item = private {
    description : string;
    sequence : string;
  }
  type fmt =
    Biocaml_fasta.fmt = {
    allow_sharp_comments : bool;
    allow_semicolon_comments : bool;
    allow_empty_lines : bool;
    comments_only_at_top : bool;
    max_line_length : int option;
    alphabet : string option;
  }
  val default_fmt : fmt
  val sequence_to_int_list : string -> int list Core.Std.Or_error.t
  type item0 = Biocaml_fasta.item0
  val parse_item0 :
    ?allow_sharp_comments:bool ->
    ?allow_semicolon_comments:bool ->
    ?allow_empty_lines:bool ->
    ?max_line_length:int ->
    ?alphabet:string ->
    Biocaml_internal_utils.Line.t -> item0 Core.Std.Or_error.t
  val read0 :
    ?start:Biocaml_internal_utils.Pos.t ->
    ?allow_sharp_comments:bool ->
    ?allow_semicolon_comments:bool ->
    ?allow_empty_lines:bool ->
    ?max_line_length:int ->
    ?alphabet:string ->
    in_channel -> item0 Core.Std.Or_error.t Biocaml_internal_utils.Stream.t
  val read :
    ?start:Biocaml_internal_utils.Pos.t ->
    ?fmt:fmt ->
    in_channel ->
    (header * item Core.Std.Or_error.t Biocaml_internal_utils.Stream.t)
    Core.Std.Or_error.t
  val with_file :
    ?fmt:fmt ->
    string ->
    f:(header ->
       item Core.Std.Or_error.t Biocaml_internal_utils.Stream.t ->
       'Core.Std.Or_error.t) ->
    'Core.Std.Or_error.t
end