final monad helper for Haskell to instead of return