Hm... Line 127 might just be too smart here.  It's a bit subtle, but flatMap seems to be necessary to do the following:
```scala
_reader match {
  case None: None
  case Some(x): {x.close; None}
}
```