The HueIteration monad would have a catch function to catch exceptions of a task. ie:
myAwesomeIterationMonad = do
taskId <- huePerformTask (throwIO (TypeError "pam!")) (\state _ -> return state)
hueCatchError taskId (\state err -> return state { myError = err })
The
HueIterationmonad would have a catch function to catch exceptions of a task. ie: