There is a limitation in Kotlin's types system—it doesn't support Higher-Kinded Types (HKT). Without getting too much into type theory, an HKT is a type that declares other generic values as type parameters:
class MyClass<T>() //Valid Kotlin code class MyHigherKindedClass<K<T>>() //Not valid kotlin code
Lacking HKT is not great for Kotlin concerning functional programming, as many advanced functional constructs and patterns use them.
Note
The Arrow team is working on Kotlin Evolution and Enhancement Process (KEEP)—the community process for adding new language features, called Type Classes as extensions in Kotlin (https://github.com/Kotlin/KEEP/pull/87) to support HKT and other features. At this very moment, it isn't clear if this KEEP (coded as KEEP-87) will be included anytime soon in Kotlin, but right now is the most commented proposal and has attracted a lot of attention. Details aren't clear now as it is still a work in progress, but there is a glimpse...