filter is:exact -package:aeson package:hedgehog

Generates a value that satisfies a predicate. This is essentially:
filter p gen = mfilter p gen <|> filter p gen
It differs from the above in that we keep some state to avoid looping forever. If we trigger these limits then the whole generator is discarded.
Returns a tree containing only elements that match the predicate. If the root of the tree does not match the predicate then Nothing is returned.