Простой сплитлист на 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), чтобы я ненарушить рекурсию? Спасибо.