sig   module N :     sig       val any : t       val whilst : (Nat.t -> bool) -> string -> bool       val eq : Nat.t -> t       val gt : Nat.t -> t       val gte : Nat.t -> t       val lt : Nat.t -> t       val lte : Nat.t -> t     end   module W :     sig       val any : t       val whilst : (Whole.t -> bool) -> string -> bool       val eq : Whole.t -> t       val gt : Whole.t -> t       val gte : Whole.t -> t       val lt : Whole.t -> t       val lte : Whole.t -> t     end   module Z :     sig       val any : t       val whilst : (Int.t -> bool) -> string -> bool       val eq : Int.t -> t       val gt : Int.t -> t       val gte : Int.t -> t       val lt : Int.t -> t       val lte : Int.t -> t     end   module R :     sig       val any : t       val whilst : (Real.t -> bool) -> string -> bool       val eq : Real.t -> t       val gt : Real.t -> t       val gte : Real.t -> t       val lt : Real.t -> t       val lte : Real.t -> t     end end