I would defined `def readLines[T](reader: Reaer)(block: (Iterator[String]) => T): Option[T]` and make the other overloaded methods using it.