ммм... мне не был нужен этот кейс, мне все-таки для иницализации приложения монада нужна но если надо, получается что-то вроде trait Context[F[_]] { def get[K[_], A](key: K[A], load: Resource[F, LoadedValue[K, A]]): F[Resource[F, A]] }
разница в том, что в коде на фьючах можно замокать все нужные примитивы для конкарренси (это delay, schedule и currentTime) и потом снаружи, из теста дирижировать собранными синхронными чанками кода. а-ля myFutureMock.executeUntilEmulatedTime(....)