Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Seq(LazyList(2), Vector(3)) return too complex type in Scala 2.13 #10908

Open
xuwei-k opened this issue May 26, 2018 · 13 comments
Open

Seq(LazyList(2), Vector(3)) return too complex type in Scala 2.13 #10908

xuwei-k opened this issue May 26, 2018 · 13 comments
Labels
fixed in Scala 3 This issue does not exist in the Scala 3 compiler (https://github.com/lampepfl/dotty/) typer
Milestone

Comments

@xuwei-k
Copy link

xuwei-k commented May 26, 2018

screen shot 2018-05-26 at 21 33 34

similar issue #7402 (fixed. 5 years ago)

@lrytz
Copy link
Member

lrytz commented May 28, 2018

Similar to my comment on #10907; yes, this is an issue, but only indirectly related to the new collections.

@SethTisue SethTisue added the typer label Jun 6, 2018
@SethTisue SethTisue added this to the Backlog milestone Jun 6, 2018
@xuwei-k
Copy link
Author

xuwei-k commented Sep 16, 2018

😱

Welcome to Scala 2.13.0-pre-9bfd7d8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181).
Type in expressions for evaluation. Or try :help.

scala> Seq(LazyList(2), Vector(3))
error: Error while emitting 
Maximum String literal length exceeded

@joroKr21
Copy link
Member

LUB of F-bounded types with refinement = 😱

scala> println(lub(typeOf[LazyList[Int]] :: typeOf[Vector[Int]] :: Nil)) scala.collection.immutable.AbstractSeq[Int]{def iterableFactory: scala.collection.SeqFactory[[A]scala.collection.immutable.AbstractSeq[A]{def reverse: scala.collection.immutable.AbstractSeq[A]; def prependedAll[B >: A](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: A](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(A, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(A, B)];def tail: scala.collection.immutable.AbstractSeq[A]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[A]; def drop(n: Int): scala.collection.immutable.AbstractSeq[A]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[A]; def take(n: Int): scala.collection.immutable.AbstractSeq[A]}]; def reverse: scala.collection.immutable.AbstractSeq[Int]{def iterableFactory: scala.collection.SeqFactory[[A]scala.collection.immutable.AbstractSeq[A]]; def reverse: scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, Int)]; def prependedAll[B >: (Int, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]}; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, B)]; def prependedAll[B >: (Int, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]}; def tail: scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}}; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]{def iterableFactory: scala.collection.SeqFactory[[A]scala.collection.immutable.AbstractSeq[A]]; def reverse: scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(B, Int)]; def prependedAll[B >: (B, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (B, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((B, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((B, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(B, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(B, Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(B, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(B, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(B, Int)]}; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]{def reverse: scala.collection.immutable.AbstractSeq[(B, B)]; def prependedAll[B >: (B, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (B, B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((B, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((B, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(B, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(B, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(B, B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(B, B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(B, B)]}; def tail: scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def take(n: Int): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}}; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]{def iterableFactory: scala.collection.SeqFactory[[A]scala.collection.immutable.AbstractSeq[A]]; def reverse: scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(B, Int)]; def prependedAll[B >: (B, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (B, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((B, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((B, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(B, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(B, Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(B, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(B, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(B, Int)]}; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]{def reverse: scala.collection.immutable.AbstractSeq[(B, B)]; def prependedAll[B >: (B, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (B, B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((B, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((B, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(B, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(B, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(B, B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(B, B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(B, B)]}; def tail: scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; defdropRight(n: Int): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)];def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B):scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def take(n:Int): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}}; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]{def iterableFactory: scala.collection.SeqFactory[[A]scala.collection.immutable.AbstractSeq[A]]; def reverse: scala.collection.immutable.AbstractSeq[(Int, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, Int)]; def prependedAll[B >: (Int, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]};def prependedAll[B >: (Int, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B>: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def prepended[B >: (Int, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int):scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]{def reverse: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def prependedAll[B >: ((Int, Int),Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: ((Int, Int), Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(((Int, Int), Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(((Int, Int), Int), B)]; def tail: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[((Int, Int), Int)]}; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, Int), B)]{def reverse: scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def prependedAll[B >: ((Int, Int), B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: ((Int, Int), B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(((Int, Int), B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(((Int, Int), B), B)]; def tail: scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[((Int, Int), B)]}; def tail: scala.collection.immutable.AbstractSeq[(Int, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, Int)]; def prependedAll[B >: (Int, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]}; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, Int)]; def prependedAll[B >: (Int, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]}; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, Int)]; def prependedAll[B >: (Int, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]}; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, Int)]; def prependedAll[B >: (Int, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]}; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, Int)]; def prependedAll[B >: (Int, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]}}; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]{def iterableFactory: scala.collection.SeqFactory[[A]scala.collection.immutable.AbstractSeq[A]]; def reverse: scala.collection.immutable.AbstractSeq[(Int, B)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, B)]; def prependedAll[B >: (Int, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]}; def prependedAll[B >: (Int, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def prepended[B >: (Int, B)](elem: B): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, B), Int)]{def reverse: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def prependedAll[B >: ((Int, B), Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: ((Int, B), Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(((Int, B), Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(((Int, B), Int), B)]; def tail: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[((Int, B), Int)]}; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, B), B)]{def reverse: scala.collection.immutable.AbstractSeq[((Int, B), B)]; def prependedAll[B >: ((Int, B), B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: ((Int, B), B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(((Int, B), B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(((Int, B), B), B)]; def tail: scala.collection.immutable.AbstractSeq[((Int, B), B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[((Int, B), B)]}; def tail: scala.collection.immutable.AbstractSeq[(Int, B)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, B)]; def prependedAll[B >: (Int, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]}; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, B)]; def prependedAll[B >: (Int, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]}; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, B)]; def prependedAll[B >: (Int, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int,B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def take(n: Int):scala.collection.immutable.AbstractSeq[(Int, B)]}; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, B)]; def prependedAll[B >: (Int, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]}; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, B)]; def prependedAll[B >: (Int, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]}}; def tail: scala.collection.immutable.AbstractSeq[Int]{def iterableFactory: scala.collection.SeqFactory[[A]scala.collection.immutable.AbstractSeq[A]]; def reverse: scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem:B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n:Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, Int)]; def prependedAll[B >: (Int, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]}; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, B)]; def prependedAll[B >: (Int, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def takeRight(n:Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]}; def tail: scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int,Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}}; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def iterableFactory: scala.collection.SeqFactory[[A]scala.collection.immutable.AbstractSeq[A]]; def reverse: scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; defdrop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, Int)]; def prependedAll[B >: (Int, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]}; def zip[B](that:scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, B)]; def prependedAll[B >: (Int, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int,B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]}; def tail: scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}}; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]{def iterableFactory: scala.collection.SeqFactory[[A]scala.collection.immutable.AbstractSeq[A]]; def reverse: scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, Int)]; def prependedAll[B >: (Int, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]};def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, B)]; def prependedAll[B >: (Int, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]}; def tail: scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; defprepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}}; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def iterableFactory: scala.collection.SeqFactory[[A]scala.collection.immutable.AbstractSeq[A]]; def reverse: scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, Int)]; def prependedAll[B >: (Int, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]}; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, B)]; def prependedAll[B >: (Int, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]}; def tail: scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; defprepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}}; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]{def iterableFactory: scala.collection.SeqFactory[[A]scala.collection.immutable.AbstractSeq[A]]; def reverse: scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]{def reverse: scala.collection.immutable.AbstractSeq[B]; def prependedAll[B >: B](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: B](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(B, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(B, B)]; def tail: scala.collection.immutable.AbstractSeq[B]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def drop(n: Int): scala.collection.immutable.AbstractSeq[B]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[B]; def take(n: Int): scala.collection.immutable.AbstractSeq[B]}; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, Int)]; def prependedAll[B >: (Int, Int)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, Int)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, Int), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, Int), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, Int)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)];def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, Int)]}; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]{def reverse: scala.collection.immutable.AbstractSeq[(Int, B)]; def prependedAll[B >: (Int, B)](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: (Int, B)](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[((Int, B), Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[((Int, B), B)]; def tail: scala.collection.immutable.AbstractSeq[(Int, B)]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def drop(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]; def take(n: Int): scala.collection.immutable.AbstractSeq[(Int, B)]}; def tail: scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; defdrop(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that: scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]{def reverse: scala.collection.immutable.AbstractSeq[Int]; def prependedAll[B >: Int](prefix: IterableOnce[B]): scala.collection.immutable.AbstractSeq[B]; def prepended[B >: Int](elem: B): scala.collection.immutable.AbstractSeq[B]; def zipWithIndex: scala.collection.immutable.AbstractSeq[(Int, Int)]; def zip[B](that:scala.collection.IterableOnce[B]): scala.collection.immutable.AbstractSeq[(Int, B)]; def tail: scala.collection.immutable.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.AbstractSeq[Int]}}}

@joroKr21
Copy link
Member

I guess all those methods in the refinement come from SeqOps. If we remove AbstractSeq we get just Seq[Int] because Seq[+A] extends SeqOps[A, Seq, Seq[A]]. But it's not possible to have AbstractSeq[+A] extends SeqOps[A, AbstractSeq, AbstractSeq[A]] 🤔

@joroKr21
Copy link
Member

How about having trait TheOneAndOnlyAbstractSeq[+A] extends AbstractSeq[A] with SeqOps[A, TheOneAndOnlyAbstractSeq, TheOneAndOnlyAbstractSeq[A]]? Would this nullify the class size benefits of AbstractSeq?

@SethTisue SethTisue changed the title Seq(LazyList(2), Vector(3)) return too complex type in Scala 2.13.0-M4 Seq(LazyList(2), Vector(3)) return too complex type in Scala 2.13 Feb 11, 2020
@SethTisue
Copy link
Member

SethTisue commented Feb 11, 2020

in #11883, @OlegYch found a case where a relatively short piece of code takes 30 seconds to compile because of this issue

the workaround, of course, is to add an explicit type

@smarter
Copy link
Member

smarter commented Feb 11, 2020

In Dotty:

scala> Seq(LazyList(2), Vector(3))
val res0: Seq[scala.collection.immutable.AbstractSeq[Int] & Serializable] = List(LazyList(<not computed>), Vector(3))

@smarter smarter added the fixed in Scala 3 This issue does not exist in the Scala 3 compiler (https://github.com/lampepfl/dotty/) label Feb 11, 2020
@alexdupre
Copy link

Does it mean that a similar fix can (and will) be applied to scala 2.13 compiler?

FWIW the issue came up with Stream->LazyList migration for 2.12->2.13 upgrade and it was a pain to find the compile time regression.

@smarter
Copy link
Member

smarter commented Feb 11, 2020

Does it mean that a similar fix can (and will) be applied to scala 2.13 compiler?

No, it works in dotty because we have union types (in fact, sane lubbing is the primary reason for having them in the language), lubbing in scalac is completely different.

@NthPortal
Copy link

relatedly, I stumbled across a similar piece of code that took about 5 minutes to compile (see scala/scala#7355 (comment) and #11249)

@SethTisue
Copy link
Member

Dotty proposal to further improve the inferred type in Scala 3: scala/scala3#9032

@SethTisue
Copy link
Member

latest Dotty (3.0.0-M2) gives a further improvement in that & Serializable is no longer inferred:

scala> Seq(LazyList(1), Vector(2))                                                                                      
val res1: Seq[scala.collection.immutable.AbstractSeq[Int]] = List(LazyList(<not computed>), Vector(2))

Dotty proposal to further improve the inferred type in Scala 3: scala/scala3#9032

"super" traits were renamed to "mixin" traits and then renamed again to "transparent" traits. once we can declare AbstractSeq is transparent, I hope that will get us all the way to Seq[Seq[Int]], the type one wants here.

@SethTisue
Copy link
Member

another manifestation: #12371

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fixed in Scala 3 This issue does not exist in the Scala 3 compiler (https://github.com/lampepfl/dotty/) typer
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants