stojan
11/17/2018, 8:49 PMfun <F> MonadDefer<F>.putStrLn(line: String): Kind<F, Unit> = invoke {
println(line)
}
fun <F> MonadDefer<F>.getStrLn(): Kind<F, String> = invoke {
readLine() ?: throw IOException("Failed to read input!")
}
had to use invoke... defer expects a different return type 🙂