``` val session: IO<Option<String>> = ...
# arrow
s
Copy code
val session: IO<Option<String>> = IO.just(None)
OptionT(session).getOrElseF(IO.monad()) { createSession() }
This also works but it relies on mtl which will be moved to a seperate module.