`sig
type who = [ `All | `Group | `Other | `User ]
type wholist =
[ `All | `Group | `List of FileUtil.Mode.who list | `Other | `User ]
type permcopy = [ `Group | `Other | `User ]
type perm = [ `Exec | `ExecX | `Read | `Sticky | `StickyO | `Write ]
type permlist =
[ `Exec
| `ExecX
| `List of FileUtil.Mode.perm list
| `Read
| `Sticky
| `StickyO
| `Write ]
type actionarg =
[ `Exec
| `ExecX
| `Group
| `List of FileUtil.Mode.perm list
| `Other
| `Read
| `Sticky
| `StickyO
| `User
| `Write ]
type action =
[ `Add of FileUtil.Mode.actionarg
| `Remove of FileUtil.Mode.actionarg
| `Set of FileUtil.Mode.actionarg ]
type actionlist =
[ `Add of FileUtil.Mode.actionarg
| `List of FileUtil.Mode.action list
| `Remove of FileUtil.Mode.actionarg
| `Set of FileUtil.Mode.actionarg ]
type clause =
[ `All of FileUtil.Mode.actionlist
| `Group of FileUtil.Mode.actionlist
| `None of FileUtil.Mode.actionlist
| `Other of FileUtil.Mode.actionlist
| `User of FileUtil.Mode.actionlist ]
type t = FileUtil.Mode.clause list
end`