On 24/04/2012 11:08, Erik Hesselink wrote:
On Tue, Apr 24, 2012 at 10:55, Michael Snoyman<mich...@snoyman.com> wrote:
On Tue, Apr 24, 2012 at 11:36 AM, Erik Hesselink<hessel...@gmail.com> wrote:
On Tue, Apr 24, 2012 at 08:32, Michael Snoyman<mich...@snoyman.com> wrote:
Here's a theoretically simple solution to the problem. How about
adding a new method to the IsString typeclass:
isValidString :: String -> Bool
If you're going with this approach, why not evaluate the conversion
from String immediately? For either case you have to know the
monomorphic type, and converting at compile time is more efficient as
well. But we're getting pretty close to Template Haskell here.
I could be mistaken, but I think that would be much harder to
implement at the GHC level. GHC would then be responsible for taking a
compile-time value and having it available at runtime (i.e., lifting
in TH parlance). Of course, I'm no expert on GHC at all, so if someone
who actually knows what they're talking about says that this concern
is baseless, I agree that your approach is better.
But GHC already has all the infrastructure for this, right? You can do
exactly this with TH.
No, Michael is right. The library writer would need to provide
fromString :: String -> Q Exp
since there's no way to take an aribtrary value and convert it into
something we can compile.
Cheers,
Simon
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users