That works, but is probably not what you want. You can use the lex
function to parse identifiers not enclosed in quotes:
> instance Read Mark where
> readsPrec _ str = [(Mark x, t') | ("mark",t) <- lex str,
> (x,t') <- reads t
I played a bit around with lex function
and it seems that under certain circumstances it doesn’t read the string
of token properly
For e.g.
-- IP address
*Mark> lex "192.168.0.1"
[("192.168",".0.1")]
-- digit + char
Also lex “8021p” output
is
*Mark> lex "8021p"
[("8021","p")]
Is there any other lex variant
available? Or should I switch to using Parsec library, in that case, will
I still be able to use it with Read instances? If so, how?
Anurag