TLDR; there is no need for BIO, RIO or any FunctorN levels of indirection to properly do effects and polymorphism in Kotlin because suspension and Delimited Continuations can deal with all data types and polymorphism related to monadic composition. We will see more of this in arrow-continuations which exposes reset / shift. This lets you build type classes as algebras / effect handlers using Delimited Continuations in a friendlier Kotlin style than the one we have now for typeclasses