unapply[A <: Tree](x: FinalX) instead of X fix for Scala 2.10.
Still warning for abstract type pattern not checked due to erasure.