
Oh, I'll take booleans too! But those are easier to fudge with the existing prelude (which I have). On Nov 13, 2006, at 12:27 , Simon Peyton-Jones wrote:
In my experience I've seen more requests for overloaded *Boolean* literals than strings. In a Fran context, for example.
Simon
| -----Original Message----- | From: haskell-prime-bounces@haskell.org [mailto:haskell-prime- bounces@haskell.org] On Behalf Of | Lennart Augustsson | Sent: 11 November 2006 03:49 | To: Haskell Prime | Subject: String literals | | I think it's time that string literals got overloaded just like | numeric literals. There are several reasons for this. One reason is | the new fast string libraries. They are great, but string literals | don't work; you need to pack them first. Another reason is the | increasing use of Haskell for DSELs. In a DSEL you might want string | literals to have a different type than the ordinary String. | | I have not implemented anything yet, but I would like to see | something along the lines of the following: | | class IsString s where | fromString :: String -> s | instance IsString String where | fromString = id | | The instance declaration is not allowed in Haskell-98, but it can be | rewritten as | class IsChar c where -- Make this class local to it's defining module | fromChar :: Char -> c | instance IsChar Char where | fromChar = id | instance (IsChar c) => IsString [c] where | fromString = map fromChar | | And, like with numeric literals, any string literal will then have an | implicit fromString insert to make the right conversion. | | My guess is that the defaulting mechanism needs to be extended to | default to the String type as well, or we'll get some ambiguous | expressions. | | Any thoughts? | | -- Lennart | | _______________________________________________ | Haskell-prime mailing list | Haskell-prime@haskell.org | http://www.haskell.org/mailman/listinfo/haskell-prime