I think this should be an `elif iterable` and then have a final `else` which raises a `ValueError`