attoparsec icon indicating copy to clipboard operation
attoparsec copied to clipboard

IsString should not be implemented

Open zenzike opened this issue 8 years ago • 1 comments

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.

zenzike avatar Aug 08 '16 22:08 zenzike

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.

bgamari avatar Sep 15 '16 16:09 bgamari