Can we change this to
```scala
def optional[A](key: String)(fn: String => A): Option[A]
def optional(key: String): Option[String] = optional[String](key)(identity[String](_))
```
So we can write: optional("count") { _.toInt } which looks more like the block syntax used in most passed functions.