[Haskell-beginners] Iterating a monadic action with memoization