Proposal: Add IsString instance for (Maybe a) to base
Edward A Kmett
ekmett at gmail.com
Fri Jul 12 03:32:49 CEST 2013
Even if we wanted to we cannot use that as an actual instance.
It conflicts with the most important IsString instance of all: String!
Sent from my iPhone
On Jul 11, 2013, at 9:20 PM, Carter Schonwald <carter.schonwald at gmail.com> wrote:
> ok, framed, that way, the proposal seems much more reasonable.
>
> When framed wrt Maybe, I immediately think "nullable values", though now that I think about it more, any use of IsString there would always be f a = Just a, so even then, its philosophically kosher.
>
> I withdraw my -1, at least for the applicative version
>
>
> On Thu, Jul 11, 2013 at 8:19 PM, John Lato <jwlato at gmail.com> wrote:
>> To play devil's advocate, why?
>>
>> What does limiting IsString in this fashion gain anyone? It doesn't complicate type inference any more than it already is. For any applicative, there's the trivial instance
>>
>> instance (IsString a, Applicative t) => IsString (t a) where
>> fromString = pure . fromString
>>
>> which is conceptually a very simple step and is always total.
>>
>> Of course some functors admit other instances. I think some parser libraries already provide IsString instances as a nice syntax on matching string literals. A rule like this would invalidate those instances for no particularly good reason I can see.
>>
>>
>> On Fri, Jul 12, 2013 at 4:22 AM, Sjoerd Visscher <sjoerd at w3future.com> wrote:
>>> Could this be formalised by saying that there should be a function toString such that
>>>
>>> fromString . toString = id
>>>
>>> There's no such toString for "Maybe a" with fromString = Just.
>>>
>>> Sjoerd
>>>
>>> On Jul 10, 2013, at 4:02 PM, David Luposchainsky <dluposchainsky at googlemail.com> wrote:
>>>
>>> > On 2013-07-10 15:55, Joachim Breitner wrote:
>>> >> Hi,
>>> >>
>>> >> Am Mittwoch, den 10.07.2013, 09:21 +1000 schrieb Ivan Lazar Miljenovic:
>>> >>> -0.5 from me; I think it's too easy to forget that it's a Maybe value
>>> >>> there when refactoring, etc.
>>> >>
>>> >> same here; even with OverloadedStrings Haskell should feel as strongly
>>> >> typed as it is.
>>> >
>>> > Agreed. Overloaded strings should be reserved for things that *are*
>>> > strings in a certain way. A "Maybe String" is not a special way of
>>> > storing a string (like for example a "Vector Char"), it's a String with
>>> > an additional value. Providing a Maybe instance goes too far in the
>>> > direction of having a general "'return' with strings" function, so I'm
>>> > -1 on this.
>>> >
>>> > David
>>> >
>>> >
>>> > _______________________________________________
>>> > Libraries mailing list
>>> > Libraries at haskell.org
>>> > http://www.haskell.org/mailman/listinfo/libraries
>>>
>>>
>>> _______________________________________________
>>> Libraries mailing list
>>> Libraries at haskell.org
>>> http://www.haskell.org/mailman/listinfo/libraries
>>
>>
>> _______________________________________________
>> Libraries mailing list
>> Libraries at haskell.org
>> http://www.haskell.org/mailman/listinfo/libraries
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20130711/0a51d051/attachment-0001.htm>
More information about the Libraries
mailing list