[web-devel] xml-types IsString instance for Name causes crashes
aristidb at googlemail.com
Sun Jun 12 13:27:35 CEST 2011
I don't think there is any kind of consensus for removing it.
Am 12.06.2011 13:21 schrieb "Yitzchak Gale" <gale at sefer.org>:
> John Millikin wrote:
>> To me, the choice is between raising an exception
>> or removing IsString.
> That would be a shame, but removing it may be the
> only way out of this conundrum.
>> IsString without namespaces is pointless.
> I am making good use of it in a project that doesn't
> involve namespaces at all. It would actually be
> a lot of work to back out at this point.
>> IsString without input checking is dangerous. If fromString cannot
>> fail on invalid input, then it shouldn't be defined.
> I appreciate your concerns, but Haskell has other means of
> providing such guarantees. Raising an asynchronous exception
> is just not an option in an IsString instance.
>>> The Name type already produces invalid XML.
>> You're right -- it is already possible for Names to be invalid. There
>> should probably be stricter input checking on names, to ensure they
>> match the XML spec. Something like this...
> Yes, as I mentioned earlier, newtype wrappers with hidden
> constructors is the way we would do that if we wanted to
> guarantee those kinds of things at the type level.
> You could then provide several constructor functions that
> either do or do not raise exceptions. See, for example,
> Data.Text.Encoding, Neil Mitchell's Safe library, Michael's
> But you certainly could not use the version that raises an
> exception for an IsString instance.
> In fact, I don't think an IsString instance makes sense at
> all for a validating type. So maybe just removing it
> really is the right thing to do after all.
> web-devel mailing list
> web-devel at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the web-devel