haskell / attoparsec

A fast Haskell library for parsing ByteStrings
http://hackage.haskell.org/package/attoparsec
Other
512 stars 93 forks source link

IsString should not be implemented #124

Open zenzike opened 8 years ago

zenzike commented 8 years ago

I am a bit torn by the IsString instance. On the one hand, it makes it easy to parse literal text. On the other hand, in parsers I often don't really want to be parsing just text when I put things in quotes in BNF. Usually something like "foo" really means parse the token "foo", and also deal with trailing whitespace. I want to make this magic happen by providing my own version of IsString, but since attoparsec has it's own, I'm stuck. I suggest the library does not provide this instance or that this is made overlappable, since Haskell gives me no mechanism for hiding it or selecting my own. Currently I'm dealing with a duplicate instance declaration rather than an overlap, and I can't force the compiler to select my version.

bgamari commented 8 years ago

I also am rather torn on this. However, I'm not really sure we can easily do much about this given that this instance has been in the wild for quite some time now. I have no idea how much code would break if we removed it.