functor (Future : Future.S->
  sig
    val read :
      ?start:Biocaml_internal_utils.Pos.t ->
      Future.Reader.t ->
      (Biocaml_sam.header *
       Biocaml_sam.alignment Core.Std.Or_error.t Future.Pipe.Reader.t)
      Core.Std.Or_error.t Future.Deferred.t
    val write :
      Future.Writer.t ->
      ?header:Biocaml_sam.header ->
      Biocaml_sam.alignment Future.Pipe.Reader.t -> unit Future.Deferred.t
    val write_file :
      ?perm:int ->
      ?append:bool ->
      string ->
      ?header:Biocaml_sam.header ->
      Biocaml_sam.alignment Future.Pipe.Reader.t -> unit Future.Deferred.t
  end