Я довольно новичок в Haskell, поэтому я все еще переживаю за все. Я хочу написать две функции, где первая берет список целых чисел и возвращает первый элемент. Вторая функция делает то же самое, но возвращает последний элемент. Пока у меня есть
firstList :: [Integer] -> Integer
firstList [] = 0
firstList (_:xs) = head xs
lastList :: [Integer] -> Integer
lastList [] = 0
lastList (_:xs) = (last) xs
Кажется, что работает функция lastList, но не firstList. Например, для списка [3, 1, 2, 4]; он возвращает 1, а не 3. Как я могу улучшить свой код?