Error "Sin instancia para (Num [t])" en la función Collatz
Soy nuevo en Haskell, y programación en general. Estoy tratando de definir una función que genere la secuencia de números de Collatz den. Yo tengo:
collatz n = (collatz' n) : 1
where collatz' n = (takeWhile (>1) (collatz'' n))
where collatz'' n = n : collatz'' (collatz''' n)
where collatz''' 1 = 1
collatz''' n = if (even n) then (div n 2) else ((3*2)+1)
Cuando ejecuto esto en GHCi, aparece el error:
No instance for (Num [t])
arising from the literal `2' at <interactive>:1:7
Possible fix: add an instance declaration for (Num [t])
No sé lo que esto significa. El problema parece estar agregando "1" a la lista. Este problema surge porque
collatz' n = (takeWhile (>0) (collatz'' n))
genera una secuencia infinita de "1" siguiendo la secuencia correcta de Collatz; sin embargo,
collatz' n = (takeWhile (>1) (collatz'' n))
genera todos los números de Collatz desden excepto "1". ¿Qué estoy haciendo mal?