= Solution
The plus marks a <covariant type parameter>: \b[if $S<:T$, then `Iterator[S] <: Iterator[T]`]. An <iterator> producing a subtype's values can be used where an <iterator> of the supertype is required. For example, a <string> <iterator> can be viewed as an <iterator> of `AnyRef`, because <strings> are reference values. The direction is appropriate for a producer: calling `next()` gives a value valid at the wider type. It would not be safe to expose an ordinary insertion method accepting arbitrary wider-type values into a subtype-only collection. This is a <subtyping> relationship, not a request to transform each produced value.<Scala 2.12 types specification>[Conformance of parameterized types with covariant parameters]{ref}
Back to article page