sig
  type t = {
    dev : int;
    ino : int;
    kind : Unix_syscalls.File_kind.t;
    perm : Unix_syscalls.file_perm;
    nlink : int;
    uid : int;
    gid : int;
    rdev : int;
    size : int64;
    atime : Core.Std.Time.t;
    mtime : Core.Std.Time.t;
    ctime : Core.Std.Time.t;
  }
  val ctime : Unix_syscalls.Stats.t -> Core.Std.Time.t
  val mtime : Unix_syscalls.Stats.t -> Core.Std.Time.t
  val atime : Unix_syscalls.Stats.t -> Core.Std.Time.t
  val size : Unix_syscalls.Stats.t -> int64
  val rdev : Unix_syscalls.Stats.t -> int
  val gid : Unix_syscalls.Stats.t -> int
  val uid : Unix_syscalls.Stats.t -> int
  val nlink : Unix_syscalls.Stats.t -> int
  val perm : Unix_syscalls.Stats.t -> Unix_syscalls.file_perm
  val kind : Unix_syscalls.Stats.t -> Unix_syscalls.File_kind.t
  val ino : Unix_syscalls.Stats.t -> int
  val dev : Unix_syscalls.Stats.t -> int
  module Fields :
    sig
      val names : string list
      val ctime : (Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t
      val mtime : (Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t
      val atime : (Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t
      val size : (Unix_syscalls.Stats.t, int64) Fieldslib.Field.t
      val rdev : (Unix_syscalls.Stats.t, int) Fieldslib.Field.t
      val gid : (Unix_syscalls.Stats.t, int) Fieldslib.Field.t
      val uid : (Unix_syscalls.Stats.t, int) Fieldslib.Field.t
      val nlink : (Unix_syscalls.Stats.t, int) Fieldslib.Field.t
      val perm :
        (Unix_syscalls.Stats.t, Unix_syscalls.file_perm) Fieldslib.Field.t
      val kind :
        (Unix_syscalls.Stats.t, Unix_syscalls.File_kind.t) Fieldslib.Field.t
      val ino : (Unix_syscalls.Stats.t, int) Fieldslib.Field.t
      val dev : (Unix_syscalls.Stats.t, int) Fieldslib.Field.t
      val fold :
        init:'acc__ ->
        dev:('acc__ ->
             (Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> 'acc__) ->
        ino:('acc__ ->
             (Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> 'acc__) ->
        kind:('acc__ ->
              (Unix_syscalls.Stats.t, Unix_syscalls.File_kind.t)
              Fieldslib.Field.t -> 'acc__) ->
        perm:('acc__ ->
              (Unix_syscalls.Stats.t, Unix_syscalls.file_perm)
              Fieldslib.Field.t -> 'acc__) ->
        nlink:('acc__ ->
               (Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> 'acc__) ->
        uid:('acc__ ->
             (Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> 'acc__) ->
        gid:('acc__ ->
             (Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> 'acc__) ->
        rdev:('acc__ ->
              (Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> 'acc__) ->
        size:('acc__ ->
              (Unix_syscalls.Stats.t, int64) Fieldslib.Field.t -> 'acc__) ->
        atime:('acc__ ->
               (Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               'acc__) ->
        mtime:('acc__ ->
               (Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               'acc__) ->
        ctime:('acc__ ->
               (Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               'acc__) ->
        'acc__
      val make_creator :
        dev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
             'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        ino:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
             'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        kind:((Unix_syscalls.Stats.t, Unix_syscalls.File_kind.t)
              Fieldslib.Field.t ->
              'compile_acc__ ->
              ('input__ -> Unix_syscalls.File_kind.t) * 'compile_acc__) ->
        perm:((Unix_syscalls.Stats.t, Unix_syscalls.file_perm)
              Fieldslib.Field.t ->
              'compile_acc__ ->
              ('input__ -> Unix_syscalls.file_perm) * 'compile_acc__) ->
        nlink:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
               'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        uid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
             'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        gid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
             'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        rdev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
              'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        size:((Unix_syscalls.Stats.t, int64) Fieldslib.Field.t ->
              'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        atime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               'compile_acc__ ->
               ('input__ -> Core.Std.Time.t) * 'compile_acc__) ->
        mtime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               'compile_acc__ ->
               ('input__ -> Core.Std.Time.t) * 'compile_acc__) ->
        ctime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               'compile_acc__ ->
               ('input__ -> Core.Std.Time.t) * 'compile_acc__) ->
        'compile_acc__ ->
        ('input__ -> Unix_syscalls.Stats.t) * 'compile_acc__
      val create :
        dev:int ->
        ino:int ->
        kind:Unix_syscalls.File_kind.t ->
        perm:Unix_syscalls.file_perm ->
        nlink:int ->
        uid:int ->
        gid:int ->
        rdev:int ->
        size:int64 ->
        atime:Core.Std.Time.t ->
        mtime:Core.Std.Time.t ->
        ctime:Core.Std.Time.t -> Unix_syscalls.Stats.t
      val map :
        dev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> int) ->
        ino:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> int) ->
        kind:((Unix_syscalls.Stats.t, Unix_syscalls.File_kind.t)
              Fieldslib.Field.t -> Unix_syscalls.File_kind.t) ->
        perm:((Unix_syscalls.Stats.t, Unix_syscalls.file_perm)
              Fieldslib.Field.t -> Unix_syscalls.file_perm) ->
        nlink:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> int) ->
        uid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> int) ->
        gid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> int) ->
        rdev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> int) ->
        size:((Unix_syscalls.Stats.t, int64) Fieldslib.Field.t -> int64) ->
        atime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               Core.Std.Time.t) ->
        mtime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               Core.Std.Time.t) ->
        ctime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               Core.Std.Time.t) ->
        Unix_syscalls.Stats.t
      val iter :
        dev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> unit) ->
        ino:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> unit) ->
        kind:((Unix_syscalls.Stats.t, Unix_syscalls.File_kind.t)
              Fieldslib.Field.t -> unit) ->
        perm:((Unix_syscalls.Stats.t, Unix_syscalls.file_perm)
              Fieldslib.Field.t -> unit) ->
        nlink:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> unit) ->
        uid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> unit) ->
        gid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> unit) ->
        rdev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> unit) ->
        size:((Unix_syscalls.Stats.t, int64) Fieldslib.Field.t -> unit) ->
        atime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               unit) ->
        mtime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               unit) ->
        ctime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               unit) ->
        unit
      val for_all :
        dev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> bool) ->
        ino:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> bool) ->
        kind:((Unix_syscalls.Stats.t, Unix_syscalls.File_kind.t)
              Fieldslib.Field.t -> bool) ->
        perm:((Unix_syscalls.Stats.t, Unix_syscalls.file_perm)
              Fieldslib.Field.t -> bool) ->
        nlink:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> bool) ->
        uid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> bool) ->
        gid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> bool) ->
        rdev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> bool) ->
        size:((Unix_syscalls.Stats.t, int64) Fieldslib.Field.t -> bool) ->
        atime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               bool) ->
        mtime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               bool) ->
        ctime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               bool) ->
        bool
      val exists :
        dev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> bool) ->
        ino:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> bool) ->
        kind:((Unix_syscalls.Stats.t, Unix_syscalls.File_kind.t)
              Fieldslib.Field.t -> bool) ->
        perm:((Unix_syscalls.Stats.t, Unix_syscalls.file_perm)
              Fieldslib.Field.t -> bool) ->
        nlink:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> bool) ->
        uid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> bool) ->
        gid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> bool) ->
        rdev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> bool) ->
        size:((Unix_syscalls.Stats.t, int64) Fieldslib.Field.t -> bool) ->
        atime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               bool) ->
        mtime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               bool) ->
        ctime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               bool) ->
        bool
      val to_list :
        dev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> 'elem__) ->
        ino:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> 'elem__) ->
        kind:((Unix_syscalls.Stats.t, Unix_syscalls.File_kind.t)
              Fieldslib.Field.t -> 'elem__) ->
        perm:((Unix_syscalls.Stats.t, Unix_syscalls.file_perm)
              Fieldslib.Field.t -> 'elem__) ->
        nlink:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> 'elem__) ->
        uid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> 'elem__) ->
        gid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> 'elem__) ->
        rdev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t -> 'elem__) ->
        size:((Unix_syscalls.Stats.t, int64) Fieldslib.Field.t -> 'elem__) ->
        atime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               'elem__) ->
        mtime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               'elem__) ->
        ctime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
               'elem__) ->
        'elem__ list
      val map_poly :
        ([< `Read | `Set_and_create ], Unix_syscalls.Stats.t, 'x0)
        Fieldslib.Field.user -> 'x0 list
      module Direct :
        sig
          val iter :
            Unix_syscalls.Stats.t ->
            dev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
                 Unix_syscalls.Stats.t -> int -> unit) ->
            ino:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
                 Unix_syscalls.Stats.t -> int -> unit) ->
            kind:((Unix_syscalls.Stats.t, Unix_syscalls.File_kind.t)
                  Fieldslib.Field.t ->
                  Unix_syscalls.Stats.t -> Unix_syscalls.File_kind.t -> unit) ->
            perm:((Unix_syscalls.Stats.t, Unix_syscalls.file_perm)
                  Fieldslib.Field.t ->
                  Unix_syscalls.Stats.t -> Unix_syscalls.file_perm -> unit) ->
            nlink:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
                   Unix_syscalls.Stats.t -> int -> unit) ->
            uid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
                 Unix_syscalls.Stats.t -> int -> unit) ->
            gid:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
                 Unix_syscalls.Stats.t -> int -> unit) ->
            rdev:((Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
                  Unix_syscalls.Stats.t -> int -> unit) ->
            size:((Unix_syscalls.Stats.t, int64) Fieldslib.Field.t ->
                  Unix_syscalls.Stats.t -> int64 -> unit) ->
            atime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
                   Unix_syscalls.Stats.t -> Core.Std.Time.t -> unit) ->
            mtime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
                   Unix_syscalls.Stats.t -> Core.Std.Time.t -> unit) ->
            ctime:((Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
                   Unix_syscalls.Stats.t -> Core.Std.Time.t -> unit) ->
            unit
          val fold :
            Unix_syscalls.Stats.t ->
            init:'acc__ ->
            dev:('acc__ ->
                 (Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
                 Unix_syscalls.Stats.t -> int -> 'acc__) ->
            ino:('acc__ ->
                 (Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
                 Unix_syscalls.Stats.t -> int -> 'acc__) ->
            kind:('acc__ ->
                  (Unix_syscalls.Stats.t, Unix_syscalls.File_kind.t)
                  Fieldslib.Field.t ->
                  Unix_syscalls.Stats.t ->
                  Unix_syscalls.File_kind.t -> 'acc__) ->
            perm:('acc__ ->
                  (Unix_syscalls.Stats.t, Unix_syscalls.file_perm)
                  Fieldslib.Field.t ->
                  Unix_syscalls.Stats.t -> Unix_syscalls.file_perm -> 'acc__) ->
            nlink:('acc__ ->
                   (Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
                   Unix_syscalls.Stats.t -> int -> 'acc__) ->
            uid:('acc__ ->
                 (Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
                 Unix_syscalls.Stats.t -> int -> 'acc__) ->
            gid:('acc__ ->
                 (Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
                 Unix_syscalls.Stats.t -> int -> 'acc__) ->
            rdev:('acc__ ->
                  (Unix_syscalls.Stats.t, int) Fieldslib.Field.t ->
                  Unix_syscalls.Stats.t -> int -> 'acc__) ->
            size:('acc__ ->
                  (Unix_syscalls.Stats.t, int64) Fieldslib.Field.t ->
                  Unix_syscalls.Stats.t -> int64 -> 'acc__) ->
            atime:('acc__ ->
                   (Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
                   Unix_syscalls.Stats.t -> Core.Std.Time.t -> 'acc__) ->
            mtime:('acc__ ->
                   (Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
                   Unix_syscalls.Stats.t -> Core.Std.Time.t -> 'acc__) ->
            ctime:('acc__ ->
                   (Unix_syscalls.Stats.t, Core.Std.Time.t) Fieldslib.Field.t ->
                   Unix_syscalls.Stats.t -> Core.Std.Time.t -> 'acc__) ->
            'acc__
        end
    end
  val to_string : Unix_syscalls.Stats.t -> string
  val t_of_sexp : Sexplib.Sexp.t -> Unix_syscalls.Stats.t
  val sexp_of_t : Unix_syscalls.Stats.t -> Sexplib.Sexp.t
end