A trait encompassing both Iterable<T> for some fixed T`Tand` and
FromIterator<U> for all U`U(where HKT comes in). The train could provide e.g. a defaultmap` method producing the same kind of
the container, but with a new type parameter.
Monadic-generic programming? Can we add this without deprecating
huge swaths of the API (including Option::map, option::collect,
result::collect, try!`try!` etc.