protip: make your case classes final. Using this (currently) non final `Tuple2` as an example:

```scala
scala> (1, 2) match { case Seq(a, b, c) => a }
scala.MatchError: (1,2) (of class scala.Tuple2$mcII$sp)

scala> final case class MyTuple[+A, +B](_1: A, _2: B)
defined class MyTuple

scala> MyTuple(1, 2) match { case Seq(a, b, c) => a }
<console>:10: warning: fruitless type test: a value of type MyTuple[Int,Int] cannot also be a Seq[A]
              MyTuple(1, 2) match { case Seq(a, b, c) => a }
```