replaced iterable by traversable: most collections will be non strict