let list_iter_all func lst = catch (fun () -> list_fold_left_all (fun () x -> (func x : (unit, _) res)) () lst) (fun (h, t, (), e) -> fail (h, t, e))