Why is this called `traverseSingle` when it returns a `Seq`? It is unlikely that it returns multiple elements, isn't it? Returning an `Option` should be better.