raulraja
interface Logger<F> { fun warn(msg: String): Kind<F, Unit> } class ConsoleLogger<F>(S: Sync<F>): Logger<F>, Sync<F> by S { override fun warn(msg: String): Kind<F, Unit> = S.delay { println("WARN: $msg") } }