Haskell Iniciante Problemas com a divisão de uma lista ao meio

Aqui está minha tentativa de escrever uma função que divide uma lista de comprimento uniforme em duas metades iguais.

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

Eu estou recebendo o seguinte erro:

 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’:

Não entendi o erro, mas desconfio que Haskell precise ser informado com antecedência de que len é algo que você pode dividir por 2. Então, como retifico o exemplo? Meu código está perto de haskell idiomático? Eu gostaria de receber outros comentários sobre o meu código.

questionAnswers(4)

yourAnswerToTheQuestion