Простой сплитлист на Haskell

У меня есть следующая функция, которая берет список и возвращает два подсписка, разделенных на данный элемент n. Однако мне нужно только разделить его пополам, при этом списки нечетной длины имеют больший первый подсписок

splitlist :: [a] -> Int -> ([a],[a])
splitlist [] = ([],[])
splitlist l@(x : xs) n | n > 0     = (x : ys, zs)
               | otherwise = (l, [])
    where (ys,zs) = splitlist xs (n - 1)

Я знаю, что мне нужно изменить подпись на [a] -> ([a], [a]), но где в коде я должен поместить что-то вроде length (xs), чтобы я ненарушить рекурсию? Спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос