Since the result of `make_tests` is only ever iterated on, we could actually just pass in an iterable of tests and get the same benefit of laziness. Is there any other reason to have `make_tests` be a callable?