I was looking over the dependency injection talk a...
# arrow
d
I was looking over the dependency injection talk and am a bit confused about defining the interface dependencies with delegates. For instance, take the following interface:
Copy code
interface NameFetcher<F> : Async<F> {
    fun fetchName(): Kind<F, String> = defer { just("bob") }
}
If I want an
IO
implementation, then
IO
conveniently provides an
async
delegate:
Copy code
object IONameFetcher : NameFetcher<ForIO>, Async<ForIO> by IO.async() {}
However, I am confused in the case that I want a
Try
implementation. How can I satisfy the
Async<ForTry>
dependency?