sig
  type size = Bytes of int | Kilobytes of int | Megabytes of int
  and size_test =
      LargerThan of Find.size
    | SmallerThan of Find.size
    | EqualTo of Find.size
  and time_test = Before of int32 | After of int32 | At of int32
  and test =
      Name of string
    | IName of string
    | Regexp of string
    | Type of Unix.file_kind
    | Owner of int
    | Group of int
    | Perms of Unix.file_perm
    | Size of Find.size_test
    | Modified of Find.time_test
    | Created of Find.time_test
    | Accessed of Find.time_test
    | Eval of (string -> Unix.stats -> bool)
    | And of Find.test list
    | Or of Find.test list
    | True
    | False
  and t
  val make : Find.test -> Find.t
  val find : Find.t -> string -> string list
end