AdrianRaFo
04/11/2019, 11:02 AM@extension
export the extension functions from a type class
interface Functor<F> {
fun <A, B> Kind<F, A>.map(f: (A) -> B): Kind<F, B>
}
to inheritors
@extension interface IOFunctor : Functor<ForIO> {
override fun <A, B> Kind<ForIO, A>.map(f: (A) -> B): IO<B> =
fix().map(f)
}
Imran/Malic
04/11/2019, 11:35 AMAdrianRaFo
04/11/2019, 12:43 PMImran/Malic
04/11/2019, 3:06 PMAdrianRaFo
04/11/2019, 3:07 PMImran/Malic
04/11/2019, 3:07 PM