Scala 2.10では、これは機能します。
implicit class T1[A](val self: Iterator[A]) {
def :+[B >: A](elem: B): Iterator[B] =
self ++ Iterator(elem)
}
しかし、それを値クラスにしようとすると、次のようになります。
implicit class T2[A](val self: Iterator[A]) extends AnyVal {
def :+[B >: A](elem: B): Iterator[B] =
self ++ Iterator(elem)
}
エラーが発生します:
type arguments [B] do not conform to method ++'s type parameter bounds [B >: A]
なんで?