Fuzz.set : Fuzzer a -> Fuzzer (Set a)
Fuzz.dict : Fuzzer comparable -> Fuzzer value -> Fuzzer (Dict comparable value)
You can currently use Fuzz.list a |> Fuzz.map Set.fromList (and similarly for Dict), but shrinking is extremely inefficient when the number of possible values a can produce is small (in my case, each test evaluation takes more than 5 seconds, so evaluating shrinks that are the same as previous shrinks adds up quickly).
Proposing we add
You can currently use
Fuzz.list a |> Fuzz.map Set.fromList
(and similarly for Dict), but shrinking is extremely inefficient when the number of possible valuesa
can produce is small (in my case, each test evaluation takes more than 5 seconds, so evaluating shrinks that are the same as previous shrinks adds up quickly).Edit: maybe the inefficient shrinking is simply a result of https://github.com/elm-community/elm-test/issues/187 ?