haskell parsec

haskell - Ejemplo de parsec trivial produce un error de tipo



(1)

Creo que has corrido contra la restricción del monomorfismo . Esta restricción significa: si una variable se declara sin argumentos explícitos, su tipo debe ser monomórfico. Esto obliga al buscador de tipos a elegir una instancia particular de Stream , pero no puede decidir.

Hay dos formas de combatirlo:

  1. Dar una firma explícita simple :

    simple :: Stream s m Char => ParsecT s u m Char simple = letter

  2. Desactivar la restricción de monorfismo:

    {-# LANGUAGE NoMonomorphismRestriction #-} import Text.Parsec simple = letter

Ver ¿Qué es la restricción de monomorfismo? Para más información sobre la restricción de monomorfismo.

Estoy tratando de conseguir este código parsec trivial para compilar

import Text.Parsec simple = letter

pero sigo recibiendo este error

No instance for (Stream s0 m0 Char) arising from a use of `letter'' Possible fix: add an instance declaration for (Stream s0 m0 Char) In the expression: letter In an equation for `simple'': simple = letter