Soy un principiante interesado en Haskell, y he estado tratando de implementar el flatmap (>> =) por mi cuenta para entenderlo mejor. Actualmente tengoHaskell FlatMap
flatmap :: (t -> a) -> [t] -> [a]
flatmap _ [] = []
flatmap f (x:xs) = f x : flatmap f xs
que implementa la parte "mapa" pero no la "plana".
La mayor parte de las modificaciones que crea en consecuencia el error descorazonador y bastante sin información
Occurs check: cannot construct the infinite type: a = [a]
When generalising the type(s) for `flatmap'
.
¿Qué me estoy perdiendo?
Por cierto, hay una Wikipedia que describe lo que ocurre. Check es: http://en.wikipedia.org/wiki/Occurs_check – jrockway