accumulatingReverse :: [a] -> [a] accumulatingReverse lst = let rev xs a = foldl (flip (:)) a xs in rev lst []