have an interface ```interface HasLog<F> { ...
# arrow
j
have an interface
Copy code
interface HasLog<F> {
    fun <A> Kind<F, A>.getLog(): (String) -> IO<Nothing>
}
that with
Copy code
@extension
interface EnvHasLog : HasLog<ForEnv> {
    override fun <A> Kind<ForEnv, A>.getLog() = this.fix().log
}
generates
Copy code
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