simon.vergauwen
val session: IO<Option<String>> = IO.just(None) OptionT(session).getOrElseF(IO.monad()) { createSession() }