[Haskell-cafe] Re: Write Haskell as fast as C.

Bertram Felgenhauer bertram.felgenhauer at googlemail.com
Sun May 18 14:22:38 EDT 2008


Andrew Coppin wrote:
[...]
> I think you'll find the code that GHC derives for a Read instance handles 
> extra whitespace and all kinds of other whatnot that you don't actually 
> need in this specific case. I suspect this is what's up - but I don't have 
> any hard proof for that. ;-)

Parentheses are handled as well.

It's worse than that - derived read instances are defined in terms of
'lex' (via lexP in GHC.Read) which, among other things, recognizes
numerical and string constants. The latter has the odd effect that
with the following declaration,

> data A = A deriving (Read, Show)

the expression   read ('"' : repeat ' ') :: A   is the wrong kind of
bottom - instead of a parse error, you get an infinite loop.

Bertram


More information about the Haskell-Cafe mailing list