``` fun <F> putStrLn(A: MonadDefer<F>,...
# arrow
s
Copy code
fun <F> putStrLn(A: MonadDefer<F>, line: String): Kind<F, Unit> = A {
    println(line)
}

fun <F> getStrLn(A: MonadDefer<F>): Kind<F, String> = A {
    readLine() ?: throw IOException("Failed to read input!")
}