Haskell
вопрос, хочется сделать следующую вещь: монаду, в которой выполняются действия на каждом из которых, она может зафейлиться и нечто вроде retry, который будет выполнять определённое действие восстанавливающее состояние, и продолжать выполнение со следующей функции начиная с "поломки". Ищутся идеи куда копать?