Gopal S Akshintala
02/19/2020, 3:07 AMDBClientIO<String>main()open class Repo<F>(
        private val dbClient: DBClient,
        M: Monad<F>
) : Monad<F> by M {
    fun get(): Kind<F, String> = fx.monad { 
        dbClient.get() // vvv Compiler error. This needs to be converted to generic Higher kind
    }
}
fun main() {
    val repo = Repo(DBClient(), IO.async())
    print(repo.get().fix().unsafeRunSync())
}
class DBClient {
    fun get() = IO { "abc" }
}raulraja
02/19/2020, 8:25 AMGopal S Akshintala
02/19/2020, 12:29 PM