module Fields: sig .. end
val names : string list
val open_flags : ([< `Read | `Set_and_create ], Reader0.Internal.t,
        Reader0.Internal.open_flags Import.Deferred.t)
       Fieldslib.Field.t_with_perm
val last_read_time : ([< `Read | `Set_and_create ], Reader0.Internal.t, Core.Std.Time.t)
       Fieldslib.Field.t_with_perm
val close_finished : ([< `Read | `Set_and_create ], Reader0.Internal.t, unit Import.Ivar.t)
       Fieldslib.Field.t_with_perm
val state : ([< `Read | `Set_and_create ], Reader0.Internal.t, Reader0.Internal.State.t)
       Fieldslib.Field.t_with_perm
val bin_prot_buf : ([< `Read | `Set_and_create ], Reader0.Internal.t,
        Core.Std.Bigstring.t Core.Std.sexp_opaque)
       Fieldslib.Field.t_with_perm
val bin_prot_len_buf : ([< `Read | `Set_and_create ], Reader0.Internal.t,
        Core.Std.Bigstring.t Core.Std.sexp_opaque)
       Fieldslib.Field.t_with_perm
val available : ([< `Read | `Set_and_create ], Reader0.Internal.t, int)
       Fieldslib.Field.t_with_perm
val pos : ([< `Read | `Set_and_create ], Reader0.Internal.t, int)
       Fieldslib.Field.t_with_perm
val close_may_destroy_buf : ([< `Read | `Set_and_create ], Reader0.Internal.t,
        [ `Not_ever | `Not_now | `Yes ])
       Fieldslib.Field.t_with_perm
val buf : ([< `Read | `Set_and_create ], Reader0.Internal.t,
        Core.Std.Bigstring.t Core.Std.sexp_opaque)
       Fieldslib.Field.t_with_perm
val id : ([< `Read | `Set_and_create ], Reader0.Internal.t, Reader0.Id.t)
       Fieldslib.Field.t_with_perm
val fd : ([< `Read | `Set_and_create ], Reader0.Internal.t, Fd.t)
       Fieldslib.Field.t_with_perm
val make_creator : fd:(([< `Read | `Set_and_create ], Reader0.Internal.t, Fd.t)
           Fieldslib.Field.t_with_perm -> 'a -> ('b -> Fd.t) * 'c) ->
       id:(([< `Read | `Set_and_create ], Reader0.Internal.t, Reader0.Id.t)
           Fieldslib.Field.t_with_perm -> 'c -> ('b -> Reader0.Id.t) * 'd) ->
       buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
             Core.Std.Bigstring.t Core.Std.sexp_opaque)
            Fieldslib.Field.t_with_perm ->
            'd -> ('b -> Core.Std.Bigstring.t Core.Std.sexp_opaque) * 'e) ->
       close_may_destroy_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                               [ `Not_ever | `Not_now | `Yes ])
                              Fieldslib.Field.t_with_perm ->
                              'e -> ('b -> [ `Not_ever | `Not_now | `Yes ]) * 'f) ->
       pos:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
            Fieldslib.Field.t_with_perm -> 'f -> ('b -> int) * 'g) ->
       available:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
                  Fieldslib.Field.t_with_perm -> 'g -> ('b -> int) * 'h) ->
       bin_prot_len_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                          Core.Std.Bigstring.t Core.Std.sexp_opaque)
                         Fieldslib.Field.t_with_perm ->
                         'h ->
                         ('b -> Core.Std.Bigstring.t Core.Std.sexp_opaque) * 'i) ->
       bin_prot_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                      Core.Std.Bigstring.t Core.Std.sexp_opaque)
                     Fieldslib.Field.t_with_perm ->
                     'i -> ('b -> Core.Std.Bigstring.t Core.Std.sexp_opaque) * 'j) ->
       state:(([< `Read | `Set_and_create ], Reader0.Internal.t,
               Reader0.Internal.State.t)
              Fieldslib.Field.t_with_perm ->
              'j -> ('b -> Reader0.Internal.State.t) * 'k) ->
       close_finished:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        unit Import.Ivar.t)
                       Fieldslib.Field.t_with_perm ->
                       'k -> ('b -> unit Import.Ivar.t) * 'l) ->
       last_read_time:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        Core.Std.Time.t)
                       Fieldslib.Field.t_with_perm ->
                       'l -> ('b -> Core.Std.Time.t) * 'm) ->
       open_flags:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                    Reader0.Internal.open_flags Import.Deferred.t)
                   Fieldslib.Field.t_with_perm ->
                   'm -> ('b -> Reader0.Internal.open_flags Import.Deferred.t) * 'n) ->
       'a -> ('b -> Reader0.Internal.t) * 'n
val create : fd:Fd.t ->
       id:Reader0.Id.t ->
       buf:Core.Std.Bigstring.t Core.Std.sexp_opaque ->
       close_may_destroy_buf:[ `Not_ever | `Not_now | `Yes ] ->
       pos:int ->
       available:int ->
       bin_prot_len_buf:Core.Std.Bigstring.t Core.Std.sexp_opaque ->
       bin_prot_buf:Core.Std.Bigstring.t Core.Std.sexp_opaque ->
       state:Reader0.Internal.State.t ->
       close_finished:unit Import.Ivar.t ->
       last_read_time:Core.Std.Time.t ->
       open_flags:Reader0.Internal.open_flags Import.Deferred.t ->
       Reader0.Internal.t
val map : fd:(([< `Read | `Set_and_create ], Reader0.Internal.t, Fd.t)
           Fieldslib.Field.t_with_perm -> Fd.t) ->
       id:(([< `Read | `Set_and_create ], Reader0.Internal.t, Reader0.Id.t)
           Fieldslib.Field.t_with_perm -> Reader0.Id.t) ->
       buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
             Core.Std.Bigstring.t Core.Std.sexp_opaque)
            Fieldslib.Field.t_with_perm -> Core.Std.Bigstring.t Core.Std.sexp_opaque) ->
       close_may_destroy_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                               [ `Not_ever | `Not_now | `Yes ])
                              Fieldslib.Field.t_with_perm ->
                              [ `Not_ever | `Not_now | `Yes ]) ->
       pos:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
            Fieldslib.Field.t_with_perm -> int) ->
       available:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
                  Fieldslib.Field.t_with_perm -> int) ->
       bin_prot_len_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                          Core.Std.Bigstring.t Core.Std.sexp_opaque)
                         Fieldslib.Field.t_with_perm ->
                         Core.Std.Bigstring.t Core.Std.sexp_opaque) ->
       bin_prot_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                      Core.Std.Bigstring.t Core.Std.sexp_opaque)
                     Fieldslib.Field.t_with_perm ->
                     Core.Std.Bigstring.t Core.Std.sexp_opaque) ->
       state:(([< `Read | `Set_and_create ], Reader0.Internal.t,
               Reader0.Internal.State.t)
              Fieldslib.Field.t_with_perm -> Reader0.Internal.State.t) ->
       close_finished:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        unit Import.Ivar.t)
                       Fieldslib.Field.t_with_perm -> unit Import.Ivar.t) ->
       last_read_time:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        Core.Std.Time.t)
                       Fieldslib.Field.t_with_perm -> Core.Std.Time.t) ->
       open_flags:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                    Reader0.Internal.open_flags Import.Deferred.t)
                   Fieldslib.Field.t_with_perm ->
                   Reader0.Internal.open_flags Import.Deferred.t) ->
       Reader0.Internal.t
val iter : fd:(([< `Read | `Set_and_create ], Reader0.Internal.t, Fd.t)
           Fieldslib.Field.t_with_perm -> 'a) ->
       id:(([< `Read | `Set_and_create ], Reader0.Internal.t, Reader0.Id.t)
           Fieldslib.Field.t_with_perm -> 'b) ->
       buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
             Core.Std.Bigstring.t Core.Std.sexp_opaque)
            Fieldslib.Field.t_with_perm -> 'c) ->
       close_may_destroy_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                               [ `Not_ever | `Not_now | `Yes ])
                              Fieldslib.Field.t_with_perm -> 'd) ->
       pos:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
            Fieldslib.Field.t_with_perm -> 'e) ->
       available:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
                  Fieldslib.Field.t_with_perm -> '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 -> 'g) ->
       bin_prot_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                      Core.Std.Bigstring.t Core.Std.sexp_opaque)
                     Fieldslib.Field.t_with_perm -> 'h) ->
       state:(([< `Read | `Set_and_create ], Reader0.Internal.t,
               Reader0.Internal.State.t)
              Fieldslib.Field.t_with_perm -> 'i) ->
       close_finished:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        unit Import.Ivar.t)
                       Fieldslib.Field.t_with_perm -> 'j) ->
       last_read_time:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        Core.Std.Time.t)
                       Fieldslib.Field.t_with_perm -> 'k) ->
       open_flags:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                    Reader0.Internal.open_flags Import.Deferred.t)
                   Fieldslib.Field.t_with_perm -> 'l) ->
       'l
val fold : init:'a ->
       fd:('a ->
           ([< `Read | `Set_and_create ], Reader0.Internal.t, Fd.t)
           Fieldslib.Field.t_with_perm -> 'b) ->
       id:('b ->
           ([< `Read | `Set_and_create ], Reader0.Internal.t, Reader0.Id.t)
           Fieldslib.Field.t_with_perm -> 'c) ->
       buf:('c ->
            ([< `Read | `Set_and_create ], Reader0.Internal.t,
             Core.Std.Bigstring.t Core.Std.sexp_opaque)
            Fieldslib.Field.t_with_perm -> 'd) ->
       close_may_destroy_buf:('d ->
                              ([< `Read | `Set_and_create ], Reader0.Internal.t,
                               [ `Not_ever | `Not_now | `Yes ])
                              Fieldslib.Field.t_with_perm -> 'e) ->
       pos:('e ->
            ([< `Read | `Set_and_create ], Reader0.Internal.t, int)
            Fieldslib.Field.t_with_perm -> 'f) ->
       available:('f ->
                  ([< `Read | `Set_and_create ], Reader0.Internal.t, int)
                  Fieldslib.Field.t_with_perm -> '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 -> '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 -> 'i) ->
       state:('i ->
              ([< `Read | `Set_and_create ], Reader0.Internal.t,
               Reader0.Internal.State.t)
              Fieldslib.Field.t_with_perm -> 'j) ->
       close_finished:('j ->
                       ([< `Read | `Set_and_create ], Reader0.Internal.t,
                        unit Import.Ivar.t)
                       Fieldslib.Field.t_with_perm -> 'k) ->
       last_read_time:('k ->
                       ([< `Read | `Set_and_create ], Reader0.Internal.t,
                        Core.Std.Time.t)
                       Fieldslib.Field.t_with_perm -> 'l) ->
       open_flags:('l ->
                   ([< `Read | `Set_and_create ], Reader0.Internal.t,
                    Reader0.Internal.open_flags Import.Deferred.t)
                   Fieldslib.Field.t_with_perm -> 'm) ->
       'm
val map_poly : ([< `Read | `Set_and_create ], Reader0.Internal.t, 'a) Fieldslib.Field.user ->
       'a list
val for_all : fd:(([< `Read | `Set_and_create ], Reader0.Internal.t, Fd.t)
           Fieldslib.Field.t_with_perm -> bool) ->
       id:(([< `Read | `Set_and_create ], Reader0.Internal.t, Reader0.Id.t)
           Fieldslib.Field.t_with_perm -> bool) ->
       buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
             Core.Std.Bigstring.t Core.Std.sexp_opaque)
            Fieldslib.Field.t_with_perm -> bool) ->
       close_may_destroy_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                               [ `Not_ever | `Not_now | `Yes ])
                              Fieldslib.Field.t_with_perm -> bool) ->
       pos:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
            Fieldslib.Field.t_with_perm -> bool) ->
       available:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
                  Fieldslib.Field.t_with_perm -> bool) ->
       bin_prot_len_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                          Core.Std.Bigstring.t Core.Std.sexp_opaque)
                         Fieldslib.Field.t_with_perm -> bool) ->
       bin_prot_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                      Core.Std.Bigstring.t Core.Std.sexp_opaque)
                     Fieldslib.Field.t_with_perm -> bool) ->
       state:(([< `Read | `Set_and_create ], Reader0.Internal.t,
               Reader0.Internal.State.t)
              Fieldslib.Field.t_with_perm -> bool) ->
       close_finished:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        unit Import.Ivar.t)
                       Fieldslib.Field.t_with_perm -> bool) ->
       last_read_time:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        Core.Std.Time.t)
                       Fieldslib.Field.t_with_perm -> bool) ->
       open_flags:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                    Reader0.Internal.open_flags Import.Deferred.t)
                   Fieldslib.Field.t_with_perm -> bool) ->
       bool
val exists : fd:(([< `Read | `Set_and_create ], Reader0.Internal.t, Fd.t)
           Fieldslib.Field.t_with_perm -> bool) ->
       id:(([< `Read | `Set_and_create ], Reader0.Internal.t, Reader0.Id.t)
           Fieldslib.Field.t_with_perm -> bool) ->
       buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
             Core.Std.Bigstring.t Core.Std.sexp_opaque)
            Fieldslib.Field.t_with_perm -> bool) ->
       close_may_destroy_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                               [ `Not_ever | `Not_now | `Yes ])
                              Fieldslib.Field.t_with_perm -> bool) ->
       pos:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
            Fieldslib.Field.t_with_perm -> bool) ->
       available:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
                  Fieldslib.Field.t_with_perm -> bool) ->
       bin_prot_len_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                          Core.Std.Bigstring.t Core.Std.sexp_opaque)
                         Fieldslib.Field.t_with_perm -> bool) ->
       bin_prot_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                      Core.Std.Bigstring.t Core.Std.sexp_opaque)
                     Fieldslib.Field.t_with_perm -> bool) ->
       state:(([< `Read | `Set_and_create ], Reader0.Internal.t,
               Reader0.Internal.State.t)
              Fieldslib.Field.t_with_perm -> bool) ->
       close_finished:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        unit Import.Ivar.t)
                       Fieldslib.Field.t_with_perm -> bool) ->
       last_read_time:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        Core.Std.Time.t)
                       Fieldslib.Field.t_with_perm -> bool) ->
       open_flags:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                    Reader0.Internal.open_flags Import.Deferred.t)
                   Fieldslib.Field.t_with_perm -> bool) ->
       bool
val to_list : fd:(([< `Read | `Set_and_create ], Reader0.Internal.t, Fd.t)
           Fieldslib.Field.t_with_perm -> 'a) ->
       id:(([< `Read | `Set_and_create ], Reader0.Internal.t, Reader0.Id.t)
           Fieldslib.Field.t_with_perm -> 'a) ->
       buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
             Core.Std.Bigstring.t Core.Std.sexp_opaque)
            Fieldslib.Field.t_with_perm -> 'a) ->
       close_may_destroy_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                               [ `Not_ever | `Not_now | `Yes ])
                              Fieldslib.Field.t_with_perm -> 'a) ->
       pos:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
            Fieldslib.Field.t_with_perm -> 'a) ->
       available:(([< `Read | `Set_and_create ], Reader0.Internal.t, int)
                  Fieldslib.Field.t_with_perm -> 'a) ->
       bin_prot_len_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                          Core.Std.Bigstring.t Core.Std.sexp_opaque)
                         Fieldslib.Field.t_with_perm -> 'a) ->
       bin_prot_buf:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                      Core.Std.Bigstring.t Core.Std.sexp_opaque)
                     Fieldslib.Field.t_with_perm -> 'a) ->
       state:(([< `Read | `Set_and_create ], Reader0.Internal.t,
               Reader0.Internal.State.t)
              Fieldslib.Field.t_with_perm -> 'a) ->
       close_finished:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        unit Import.Ivar.t)
                       Fieldslib.Field.t_with_perm -> 'a) ->
       last_read_time:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                        Core.Std.Time.t)
                       Fieldslib.Field.t_with_perm -> 'a) ->
       open_flags:(([< `Read | `Set_and_create ], Reader0.Internal.t,
                    Reader0.Internal.open_flags Import.Deferred.t)
                   Fieldslib.Field.t_with_perm -> 'a) ->
       'a list
module Direct: sig .. end