
Neil Mitchell
Check out ReadP or parsec, they are far superior in general. I think there was a suggestion of replacing Read with ReadP?
The whole point is not about writing a parser, its about having a parser written for me with deriving Read - unfortunately their is no deriving LazyRead or deriving Parsec etc.
Well, DrIFT can derive my TextParser class (another proposal for a replacement of Read in haskell-prime). However, TextParser isn't lazy in the way you would like. It can detect failure early and commit to it, but detecting success early, in order to commit to returning the initial portion of the datastructure, is not so nice to express. Essentially, rather than having an indication of success/failure in the type system, using the Maybe or Either types, you are asking to return the typed value itself, with no wrapper, but perhaps some hidden bottoms buried inside. One could certainly define such a parsing set-up, but there are no standard ones I know of. The attraction of lazy parsing is obvious, but there is a cost in terms of safety. Regards, Malcolm