With "do" and the coincidental naming of "return", and IORefs if you insist, you can write imperative bottom-up code in Haskell.
With "do" and the coincidental naming of "return", and IORefs if you insist, you can write imperative bottom-up code in Haskell.