import scala.collection._

trait GenSeqView0[+A, +Coll]

trait GenSeqViewLike[+A,
                     +Coll,
                     +This <: GenSeqView0[A, Coll] with GenSeqViewLike[A, Coll, Nothing]]
extends GenSeq[A]  {
self =>

  trait Transformed[+B] {
    def length: Int = 0
    def apply(idx: Int): B = error("")
  }

  trait Reversed extends Transformed[A] {
    def iterator: Iterator[A] = createReversedIterator

    private def createReversedIterator: Iterator[A] = {
      self.foreach(_ => ())
      null
    }
  }
}
