Any reason not to do it in the following way?

```scala
def computeFirst(seen: Set[Parser[Any]]) =
  self.computeFirst(seen) map { _ + None } getOrElse Set(None)
```