Proposal: Improving the IsString String instance

Edward Kmett ekmett at
Mon Aug 26 22:41:43 CEST 2013

The argument in favor of using some 'o' combinator works even better on my
side of the debate. ;)

I can coopt the suggestion of 'o' to say that you can use it for the few
instances of IsString [Foo] that you want without having to say that the
solution to this problem is to not fix it and make everyone pay this price.

It is clear that other portions of the community found o"foo" an
unacceptable tax for their EDSLs, so all you're saying is that this problem
doesn't affect you.

The web frameworks won't stop using OverloadedStrings, and I don't in
general think they should have to.

I'm not making a moral stance for changing it or not changing it, merely a
pragmatic one.

So we have 3 options.

1) make the change,
2) fix defaulting somehow to cover IsString
3) do nothing.

Out of these I prefer option 2 to option 1, and find that option 3 doesn't
lead to an acceptable outcome. Option 1 has knock-on effects and is less
powerful than option 2 in that it would interact more poorly with the
proposed Foldable/Traversable changes.

All of that said, I am concerned that we'll now paralyze because of Ian's
dangled option that we may be able to solve it with improved defaulting
rules, as he has indicated a lack of desire to go implement that possible

Personally, and not speaking in any official capacity, I'd be willing to
punt the issue out to say, something like 7.10 with the caveat that if by
then we haven't resolved the defaulting solution by then we should
implement this. That way we start the generalization of
Foldable/Traversable in 7.9, and it gives us a year or so for someone to
figure out if the defaulting solution can work, and the current proposal
can serve as a fallback position.

I don't know about Snoyman or Doug's stance on the urgency of the issue as
it affects users far more in their spheres of influence than mine, so if
they preferred to bull ahead I'd be apt to defer to them.


On Mon, Aug 26, 2013 at 1:39 PM, Henning Thielemann <
lemming at> wrote:

> On Mon, 26 Aug 2013, Henning Thielemann wrote:
>  This "opting in" already exists: Just put a space between o and the
>> quotation mark and define "o = fromString". It's Haskell 98.
> I was wrong: You even don't need the space between o and ".
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Libraries mailing list