# Generators for predicate specifications Specifications are used to generate a wide range of random data. A generator for the specification is obtained and then data is generated.
## Predicate generators
```clojure
(spec-gen/generate (spec/gen int?))
```
```clojure
(spec-gen/generate (spec/gen nil?))
```
```clojure
(spec-gen/sample (spec/gen string?))
```
```clojure
(spec-gen/generate (spec/gen #{:club :diamond :heart :spade}))
```
```clojure
(spec-gen/sample (spec/gen #{:club :diamond :heart :spade}))
```