module Direct: sig .. end
val iter : Reader0.Internal.t ->
       fd:(([< `Read | `Set_and_create ], Reader0.Internal.t, Fd.t)
           Fieldslib.Field.t_with_perm -> Reader0.Internal.t -> Fd.t -> 'a) ->
       id:(([< `Read | `Set_and_create ], Reader0.Internal.t, Reader0.Id.t)
           Fieldslib.Field.t_with_perm -> Reader0.Internal.t -> Reader0.Id.t -> 'b) ->
       buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
             Core.Std.Bigstring.t Core.Std.sexp_opaque)
            Fieldslib.Field.t_with_perm ->
            Reader0.Internal.t -> Core.Std.Bigstring.t Core.Std.sexp_opaque -> 'c) ->
       close_may_destroy_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                               [ `Not_ever | `Not_now | `Yes ])
                              Fieldslib.Field.t_with_perm ->
                              Reader0.Internal.t ->
                              [ `Not_ever | `Not_now | `Yes ] -> 'd) ->
       pos:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
            Fieldslib.Field.t_with_perm -> Reader0.Internal.t -> int -> 'e) ->
       available:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
                  Fieldslib.Field.t_with_perm -> Reader0.Internal.t -> int -> 'f) ->
       bin_prot_len_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                          Core.Std.Bigstring.t Core.Std.sexp_opaque)
                         Fieldslib.Field.t_with_perm ->
                         Reader0.Internal.t ->
                         Core.Std.Bigstring.t Core.Std.sexp_opaque -> 'g) ->
       bin_prot_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                      Core.Std.Bigstring.t Core.Std.sexp_opaque)
                     Fieldslib.Field.t_with_perm ->
                     Reader0.Internal.t ->
                     Core.Std.Bigstring.t Core.Std.sexp_opaque -> 'h) ->
       state:(([< `Read | `Set_and_create ], Reader0.Internal.t,
               Reader0.Internal.State.t)
              Fieldslib.Field.t_with_perm ->
              Reader0.Internal.t -> Reader0.Internal.State.t -> 'i) ->
       close_finished:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        unit Import.Ivar.t)
                       Fieldslib.Field.t_with_perm ->
                       Reader0.Internal.t -> unit Import.Ivar.t -> 'j) ->
       last_read_time:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        Core.Std.Time.t)
                       Fieldslib.Field.t_with_perm ->
                       Reader0.Internal.t -> Core.Std.Time.t -> 'k) ->
       open_flags:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                    Reader0.Internal.open_flags Import.Deferred.t)
                   Fieldslib.Field.t_with_perm ->
                   Reader0.Internal.t ->
                   Reader0.Internal.open_flags Import.Deferred.t -> 'l) ->
       'l
val fold : Reader0.Internal.t ->
       init:'a ->
       fd:('a ->
           ([< `Read | `Set_and_create ], Reader0.Internal.t, Fd.t)
           Fieldslib.Field.t_with_perm -> Reader0.Internal.t -> Fd.t -> 'b) ->
       id:('b ->
           ([< `Read | `Set_and_create ], Reader0.Internal.t, Reader0.Id.t)
           Fieldslib.Field.t_with_perm -> Reader0.Internal.t -> Reader0.Id.t -> 'c) ->
       buf:('c ->
            ([< `Read | `Set_and_create ], Reader0.Internal.t,
             Core.Std.Bigstring.t Core.Std.sexp_opaque)
            Fieldslib.Field.t_with_perm ->
            Reader0.Internal.t -> Core.Std.Bigstring.t Core.Std.sexp_opaque -> 'd) ->
       close_may_destroy_buf:('d ->
                              ([< `Read | `Set_and_create ], Reader0.Internal.t,
                               [ `Not_ever | `Not_now | `Yes ])
                              Fieldslib.Field.t_with_perm ->
                              Reader0.Internal.t ->
                              [ `Not_ever | `Not_now | `Yes ] -> 'e) ->
       pos:('e ->
            ([< `Read | `Set_and_create ], Reader0.Internal.t, int)
            Fieldslib.Field.t_with_perm -> Reader0.Internal.t -> int -> 'f) ->
       available:('f ->
                  ([< `Read | `Set_and_create ], Reader0.Internal.t, int)
                  Fieldslib.Field.t_with_perm -> Reader0.Internal.t -> int -> 'g) ->
       bin_prot_len_buf:('g ->
                         ([< `Read | `Set_and_create ], Reader0.Internal.t,
                          Core.Std.Bigstring.t Core.Std.sexp_opaque)
                         Fieldslib.Field.t_with_perm ->
                         Reader0.Internal.t ->
                         Core.Std.Bigstring.t Core.Std.sexp_opaque -> 'h) ->
       bin_prot_buf:('h ->
                     ([< `Read | `Set_and_create ], Reader0.Internal.t,
                      Core.Std.Bigstring.t Core.Std.sexp_opaque)
                     Fieldslib.Field.t_with_perm ->
                     Reader0.Internal.t ->
                     Core.Std.Bigstring.t Core.Std.sexp_opaque -> 'i) ->
       state:('i ->
              ([< `Read | `Set_and_create ], Reader0.Internal.t,
               Reader0.Internal.State.t)
              Fieldslib.Field.t_with_perm ->
              Reader0.Internal.t -> Reader0.Internal.State.t -> 'j) ->
       close_finished:('j ->
                       ([< `Read | `Set_and_create ], Reader0.Internal.t,
                        unit Import.Ivar.t)
                       Fieldslib.Field.t_with_perm ->
                       Reader0.Internal.t -> unit Import.Ivar.t -> 'k) ->
       last_read_time:('k ->
                       ([< `Read | `Set_and_create ], Reader0.Internal.t,
                        Core.Std.Time.t)
                       Fieldslib.Field.t_with_perm ->
                       Reader0.Internal.t -> Core.Std.Time.t -> 'l) ->
       open_flags:('l ->
                   ([< `Read | `Set_and_create ], Reader0.Internal.t,
                    Reader0.Internal.open_flags Import.Deferred.t)
                   Fieldslib.Field.t_with_perm ->
                   Reader0.Internal.t ->
                   Reader0.Internal.open_flags Import.Deferred.t -> 'm) ->
       'm