I understand this is a pretty rare use-case, but it would be great to dial the tradeoff between taking a long time to Filter() a valid value and number of values we get. At the moment if we don't produce a value that passes Filter() within small attempts (currently set to 5), the generator fails. Would it make sense to make it an optional argument to Filter()?