You can create a fuzzer that generates a tuple with unique values, such as:
uniqueTuple : Fuzzer comparable -> Fuzzer (comparable, comparable)
uniqueTuple fuzzer =
let
uniquer (a, b) =
if a == b then
tuple (constant a, fuzzer)
|> Fuzz.andThen uniquer
else
constant (a, b)
in
tuple (fuzzer, fuzzer)
|> Fuzz.andThen uniquer
, fuzzer (, int), . , fuzzed . , .
fuzzer:
fuzz (uniqueTuple int) "All pairs are unique" <|
\(a, b) ->
Expect.notEqual a b