For efficiency reasons let's add an explicit `applyOrElse` override as well:

    override def applyOrElse[A <: Tree, B >: OpTree](x: A, default: A ⇒ B): B = fromTree.applyOrElse(x, default)