If we are doing this, why not take an Iterable from the beginning?  I guess some of these will be Iterable already and the toIterable will be a noop. Hmm..