sig
  val dev : < stat : < .. >; .. > Line.t -> int
  val set_dev : int -> (< stat : < .. >; .. > as 'a) Line.t -> 'Line.t
  val inode : < stat : < .. >; .. > Line.t -> int
  val set_inode : int -> (< stat : < .. >; .. > as 'a) Line.t -> 'Line.t
  val kind : < stat : < .. >; .. > Line.t -> Unix.file_kind
  val set_kind :
    Unix.file_kind -> (< stat : < .. >; .. > as 'a) Line.t -> 'Line.t
  module Mode :
    sig
      val xusr : < stat : < mode : Line.present; .. >; .. > Line.t -> bool
      val set_xusr :
        bool ->
        (< stat : < mode : Line.present; .. >; .. > as 'a) Line.t ->
        'Line.t
      val wusr : < stat : < mode : Line.present; .. >; .. > Line.t -> bool
      val set_wusr :
        bool ->
        (< stat : < mode : Line.present; .. >; .. > as 'a) Line.t ->
        'Line.t
      val rusr : < stat : < mode : Line.present; .. >; .. > Line.t -> bool
      val set_rusr :
        bool ->
        (< stat : < mode : Line.present; .. >; .. > as 'a) Line.t ->
        'Line.t
      val xgrp : < stat : < mode : Line.present; .. >; .. > Line.t -> bool
      val set_xgrp :
        bool ->
        (< stat : < mode : Line.present; .. >; .. > as 'a) Line.t ->
        'Line.t
      val wgrp : < stat : < mode : Line.present; .. >; .. > Line.t -> bool
      val set_wgrp :
        bool ->
        (< stat : < mode : Line.present; .. >; .. > as 'a) Line.t ->
        'Line.t
      val rgrp : < stat : < mode : Line.present; .. >; .. > Line.t -> bool
      val set_rgrp :
        bool ->
        (< stat : < mode : Line.present; .. >; .. > as 'a) Line.t ->
        'Line.t
      val xoth : < stat : < mode : Line.present; .. >; .. > Line.t -> bool
      val set_xoth :
        bool ->
        (< stat : < mode : Line.present; .. >; .. > as 'a) Line.t ->
        'Line.t
      val woth : < stat : < mode : Line.present; .. >; .. > Line.t -> bool
      val set_woth :
        bool ->
        (< stat : < mode : Line.present; .. >; .. > as 'a) Line.t ->
        'Line.t
      val roth : < stat : < mode : Line.present; .. >; .. > Line.t -> bool
      val set_roth :
        bool ->
        (< stat : < mode : Line.present; .. >; .. > as 'a) Line.t ->
        'Line.t
      val suid : < stat : < mode : Line.present; .. >; .. > Line.t -> bool
      val set_suid :
        bool ->
        (< stat : < mode : Line.present; .. >; .. > as 'a) Line.t ->
        'Line.t
      val sgid : < stat : < mode : Line.present; .. >; .. > Line.t -> bool
      val set_sgid :
        bool ->
        (< stat : < mode : Line.present; .. >; .. > as 'a) Line.t ->
        'Line.t
      val sticky : < stat : < mode : Line.present; .. >; .. > Line.t -> bool
      val set_sticky :
        bool ->
        (< stat : < mode : Line.present; .. >; .. > as 'a) Line.t ->
        'Line.t
      val bits : < stat : < mode : Line.present; .. >; .. > Line.t -> int
      val set_bits :
        int ->
        (< stat : < mode : Line.present; .. >; .. > as 'a) Line.t ->
        'Line.t
      val create :
        xusr:bool ->
        wusr:bool ->
        rusr:bool ->
        xgrp:bool ->
        wgrp:bool ->
        rgrp:bool ->
        xoth:bool ->
        woth:bool ->
        roth:bool ->
        suid:bool ->
        sgid:bool ->
        sticky:bool ->
        bits:int ->
        < delim : 'a; fstab : 'b; group : 'c; key_value : 'd; mailcap : 'e;
          passwd : 'f; ps : 'g; seq : 'h; source : 'i;
          stat : < blksize : 'j; blocks : 'k; mode : Line.absent > >
        Line.t ->
        < delim : 'a; fstab : 'b; group : 'c; key_value : 'd; mailcap : 'e;
          passwd : 'f; ps : 'g; seq : 'h; source : 'i;
          stat : < blksize : 'j; blocks : 'k; mode : Line.present > >
        Line.t
    end
  val nlink : < stat : < .. >; .. > Line.t -> int
  val set_nlink : int -> (< stat : < .. >; .. > as 'a) Line.t -> 'Line.t
  val uid : < stat : < .. >; .. > Line.t -> int
  val set_uid : int -> (< stat : < .. >; .. > as 'a) Line.t -> 'Line.t
  val gid : < stat : < .. >; .. > Line.t -> int
  val set_gid : int -> (< stat : < .. >; .. > as 'a) Line.t -> 'Line.t
  val rdev : < stat : < .. >; .. > Line.t -> int
  val set_rdev : int -> (< stat : < .. >; .. > as 'a) Line.t -> 'Line.t
  val size : < stat : < .. >; .. > Line.t -> int
  val set_size : int -> (< stat : < .. >; .. > as 'a) Line.t -> 'Line.t
  val blksize : < stat : < blksize : Line.present; .. >; .. > Line.t -> int
  val set_blksize :
    int ->
    < delim : 'a; fstab : 'b; group : 'c; key_value : 'd; mailcap : 'e;
      passwd : 'f; ps : 'g; seq : 'h; source : 'i;
      stat : < blksize : 'j; blocks : 'k; mode : 'l > >
    Line.t ->
    < delim : 'a; fstab : 'b; group : 'c; key_value : 'd; mailcap : 'e;
      passwd : 'f; ps : 'g; seq : 'h; source : 'i;
      stat : < blksize : Line.present; blocks : 'k; mode : 'l > >
    Line.t
  val blocks : < stat : < blocks : Line.present; .. >; .. > Line.t -> int
  val set_blocks :
    int ->
    < delim : 'a; fstab : 'b; group : 'c; key_value : 'd; mailcap : 'e;
      passwd : 'f; ps : 'g; seq : 'h; source : 'i;
      stat : < blksize : 'j; blocks : 'k; mode : 'l > >
    Line.t ->
    < delim : 'a; fstab : 'b; group : 'c; key_value : 'd; mailcap : 'e;
      passwd : 'f; ps : 'g; seq : 'h; source : 'i;
      stat : < blksize : 'j; blocks : Line.present; mode : 'l > >
    Line.t
  val atime : < stat : < .. >; .. > Line.t -> float
  val set_atime : float -> (< stat : < .. >; .. > as 'a) Line.t -> 'Line.t
  val mtime : < stat : < .. >; .. > Line.t -> float
  val set_mtime : float -> (< stat : < .. >; .. > as 'a) Line.t -> 'Line.t
  val ctime : < stat : < .. >; .. > Line.t -> float
  val set_ctime : float -> (< stat : < .. >; .. > as 'a) Line.t -> 'Line.t
  val create :
    dev:int ->
    inode:int ->
    kind:Unix.file_kind ->
    nlink:int ->
    uid:int ->
    gid:int ->
    rdev:int ->
    size:int ->
    atime:float ->
    mtime:float ->
    ctime:float ->
    < delim : 'a; fstab : 'b; group : 'c; key_value : 'd; mailcap : 'e;
      passwd : 'f; ps : 'g; seq : 'h; source : 'i; stat : Line.absent >
    Line.t ->
    < delim : 'a; fstab : 'b; group : 'c; key_value : 'd; mailcap : 'e;
      passwd : 'f; ps : 'g; seq : 'h; source : 'i;
      stat : < blksize : Line.absent; blocks : Line.absent;
               mode : Line.absent > >
    Line.t
end