Last part taken from this PR
It might make sense to have tests for the generators so the edge cases are covered (I'm not sure if you plan to do a builder for every possible combination).