`(s/gen ratio?)`

is implemented as `(gen/such-that ratio? gen/ratio)`

The problem is that about 10% of the time `gen/ratio`

returns a whole number, which fails the `ratio?`

predicate. If that happens 10 times in a row, `gen/such-that`

throws an exception.

With a large enough sample size, `(s/gen ratio?)`

reliably fails:

```
(dorun (gen/sample (s/gen ratio?) 10000000))
Execution error (ExceptionInfo) at clojure.test.check.generators/fn (generators.cljc:435).
Couldn't satisfy such-that predicate after 10 tries.
```

A quick fix is to increase the `max-tries`

param for `such-that`

:

```
(dorun (gen/sample (gen/such-that ratio? gen/ratio 100) 10000000))
=> nil
```

I do however also find it odd that `(s/gen ratio?)`

always generates `Ratio`

s, but `gen/ratio`

generates a mixture of ratios and integers. So perhaps a better fix would be to update `gen/ratio`

to not generate integers?