Problem
The package README states that values are built to satisfy constraints and that Dummies uses no retry loops. That is accurate for scalar generators, but distinct collections intentionally use bounded repeated draws when the element generator's effective cardinality cannot be known.
CollectionState<T> deduplicates generated values and retries collisions up to an exhaustion budget before throwing AnyGenerationException.
Impact
The current wording overstates the implementation guarantee and can mislead users reviewing performance, termination or reproducibility behavior. It also makes the documented contract contradict the deliberate design recorded for distinct collections.
Direction
Keep the implementation, but refine the public promise:
- scalar generators construct a satisfying value directly rather than generate-and-filter;
- distinct collections fail eagerly when impossibility can be proven from cardinality;
- otherwise they use a deterministic, bounded deduplication draw and fail explicitly when the budget is exhausted;
- no generation path may use an unbounded retry loop.
Update the NuGet README and any user-facing documentation that repeats the stronger claim.
Acceptance criteria
- Public documentation no longer claims that every generator avoids retry loops.
- The distinction between direct scalar construction and bounded distinct-collection drawing is explicit.
- The documentation explains the generation-time
AnyGenerationException fallback.
- Existing examples remain concise and preserve the library's core positioning.
Context
Surfaced during a focused review of the standalone Dummies library.
Problem
The package README states that values are built to satisfy constraints and that Dummies uses no retry loops. That is accurate for scalar generators, but distinct collections intentionally use bounded repeated draws when the element generator's effective cardinality cannot be known.
CollectionState<T>deduplicates generated values and retries collisions up to an exhaustion budget before throwingAnyGenerationException.Impact
The current wording overstates the implementation guarantee and can mislead users reviewing performance, termination or reproducibility behavior. It also makes the documented contract contradict the deliberate design recorded for distinct collections.
Direction
Keep the implementation, but refine the public promise:
Update the NuGet README and any user-facing documentation that repeats the stronger claim.
Acceptance criteria
AnyGenerationExceptionfallback.Context
Surfaced during a focused review of the standalone
Dummieslibrary.