Simple control structure for Haskell to re-try an action with exponential backoff