This warrants a comment to explain why it is safe to discard the position (any why it would be unsafe to use it on a shared tree like this.)

How does this compare to `EmptyTree`?, That extends:

```scala
trait CannotHaveAttrs extends Tree {
    override def canHaveAttrs = false

    private def unsupported(what: String, args: Any*) =
      throw new UnsupportedOperationException(s"$what($args) inapplicable for "+self.toString)

    super.setPos(NoPosition)
    override def setPos(pos: Position) = unsupported("setPos", pos)
```

... which throws an error in `setPos`. `EmptyTrees` are used, e.g. to encode unspecified upper/lower bounds for type parameters.