Мне нужно пояснить неожиданный результат приведенного ниже кода, по-видимому, из-за какой-то ошибки.
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]
Это из-за ошибки?