Ich brauche eine Erklärung für das unerwartete Ergebnis des unten stehenden Codes, das anscheinend auf einen Fehler zurückzuführen ist.
reverse' :: [b] -> [b]
reverse' [] = []
reverse' [x] = [x]
reverse'(x:xs) = last (x:xs) : reverse' xs
*Main> reverse' [0,8,2,5,6,1,20,99,91,1]
[1,1,1,1,1,1,1,1,1,1]
Liegt das an einem Fehler?