Hi All,

I am a newbie to Haskell, and have been using Programming in Haskell along with Eric Meijer videos covering the book syllabus. I am currently on Chapter 8 Functional Parsers, and trying to implement few of the examples given in the book.

Following is the example :

item = \inp -> case inp of
        [] -> []
        (x:xs) -> [(x,xs)]

p = do  x <- item
        y <- item
        z <- item
        return (x,y,z)

=========

When I compile it using GHCI, I get the following error :

[1 of 1] Compiling Main             ( parser.hs, interpreted )

parser.hs:5:8:
    No instance for (Monad ((->) [t]))
      arising from a do statement at parser.hs:5:8-16
    Possible fix: add an instance declaration for (Monad ((->) [t]))
    In a stmt of a 'do' expression: x <- item
    In the expression:
        do x <- item
           y <- item
           z <- item
           return (x, y, z)
    In the definition of `p':
        p = do x <- item
               y <- item
               z <- item
               ....
Failed, modules loaded: none.

=========

I tried googling for samples, above error message etc. But not getting to solution. Can anyone guide me as to what am I doing wrong and how can I fix this.

Regards,
Amiruddin Nagri,
India

GTalk : amir.nagri@gmail.com