jacob
05/03/2019, 5:18 PMinterface HasLog<F> {
fun <A> Kind<F, A>.getLog(): (String) -> IO<Nothing>
}
that with @extension
interface EnvHasLog : HasLog<ForEnv> {
override fun <A> Kind<ForEnv, A>.getLog() = this.fix().log
}
generates fun <A> Kind<ForEnv, A>.getLog(): Function1<String, IO> = com.bassjacob.ylj2019.data.Env.hasLog().run {
this@getLog.getLog<A>() as kotlin.Function1<kotlin.String, <http://arrow.effects.IO|arrow.effects.IO>>
}
which errors because IO needs a type param