Ah, I think I understand now :) Thanks.
So something like:

```scala
override def get(outerK: OuterK) : Future[Option[ReadableStore[InnerK, V]]] =
  Future.value(Some(ReadableStore[InnerK, V] {
    override def get(innerK: InnerK) {
    val k = inj((outerK, innerK))
    underlying.get(K)
  })
}
```
Also, this
http://thecodinglove.com/post/51069449556/senior-developer-explaining-how-to-use-his-library