Still fighting imperative monad