Note that the trivial solution
reverse a = foldr (\\b c -> c ++ [b] ) [] a
is not very efficient, because of the quadratic growth in complex
foldl (\acc x -> x:acc) [] [1,2,3]