Как в Scala добавить контейнерную черту (например, Traversable [Content]) к другой, которая расширяет контейнер (и, следовательно, имеет ограниченную видимость его содержимого?
Например, приведенный ниже код пытается определить черту WithIter для контейнера, требующего Traversable (конечно, у меня есть другие вещи в контейнере).
import scala.collection._
trait Container {
type Value
}
trait WithIter extends Container with immutable.Traversable[Container#Value]
class Instance extends WithIter {
type Value = Int
def foreach[U](f : (Value) => (U)) : Unit = {}
}
Компилятор (scalac 2.8.0. Beta1-RC8) находит ошибку:
ошибка: экземпляр класса должен быть абстрактным, поскольку метод foreach в признаке GenericTraversableTemplate типа [U] (f: (Container # Value) => U) Единица не определена
Есть ли простой способ?