reverse xs = rev xs [] rev [] y = y rev (a:x) y = rev x (a:y)