Good question.  My catch is that the assignment to _reader to None could not be done by map(), as it'd return a Some(None).  So for the sake of completeness,
```scala
// _reader.map(r => {r.close; None}) is equivalent to
_reader match {
  case None => None
  case Some(r) => Some((x : BufferedReader) => {x.close; None})(r)) 
}
```
This would return Some(None).  And since _reader is of type Option[BufferedReader], Scala would choke on the type-mismatch (None vs BufferedReader)