
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
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@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@haskell.org http://www.haskell.org/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries