sig
  type uv_open_flag =
      O_RDONLY
    | O_WRONLY
    | O_RDWR
    | O_NONBLOCK
    | O_CREAT
    | O_EXCL
    | O_TRUNC
    | O_APPEND
    | O_NOCTTY
    | O_DSYNC
    | O_SYNC
    | O_RSYNC
    | O_TEMPORARY
    | O_SHORT_LIVED
    | O_SEQUENTIAL
    | O_RANDOM
    | O_DIRECT
    | O_EXLOCK
    | O_NOATIME
    | O_SYMLINK
    | O_NOFOLLOW
    | O_DIRECTORY
  type file_kind =
      S_REG
    | S_DIR
    | S_CHR
    | S_BLK
    | S_LNK
    | S_FIFO
    | S_SOCK
    | S_UNKNOWN
  type symlink_mode = S_Default | S_Dir | S_Junction
  type access_permission = Read | Write | Exec | Exists
  type stats = {
    st_dev : int;
    st_kind : Uwt_base.Fs_types.file_kind;
    st_perm : int;
    st_nlink : int;
    st_uid : int;
    st_gid : int;
    st_rdev : int;
    st_ino : int;
    st_size : int64;
    st_blksize : int;
    st_blocks : int;
    st_flags : int;
    st_gen : int;
    st_atime : int64;
    st_atime_nsec : int;
    st_mtime : int64;
    st_mtime_nsec : int;
    st_ctime : int64;
    st_ctime_nsec : int;
    st_birthtime : int64;
    st_birthtime_nsec : int;
  }
  type clone_mode = No_clone | Try_clone | Force_clone
end