Проблема новичка в Haskell с разделением списка пополам

Вот моя попытка написать функцию, которая разбивает список четной длины на две равные половины.

halve :: [a] -> ([a], [a])
halve x 
   | even len = (take half x, drop half x)
   | otherwise = error "Cannnot halve a list of odd length"
   where
      len = length x
      half = len / 2

Я получаю следующую ошибку:

 No instance for (Fractional Int) arising from a use of ‘/’
    In the expression: len / 2
    In an equation for ‘half’: half = len / 2
    In an equation for ‘halve’:

Я не понимаю ошибку, но у меня есть подозрение, что Haskell нужно заранее сказать, что len - это то, что вы можете разделить на 2. Итак, как мне исправить пример? Мой код где-то рядом с идиоматическим haskell? Буду признателен за любые другие комментарии относительно моего кода.

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

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