<@UBZTE2MSB> TLDR; you can emulate higher kinds on...
# arrow
r
@Bernhard TLDR; you can emulate higher kinds on type systems that have no support if they just support generics by representing
F<A>
as
Kind<F, A>
so a type class like
Functor
that is parametric to a Kind can be encoded like this:
Copy code
interface Functor<F> {
  fun <A, B> Kind<F, A>.map(f: (A) -> B): Kind<F, B>
}