
On Tue, Apr 24, 2012 at 11:36 AM, Erik Hesselink
On Tue, Apr 24, 2012 at 08:32, Michael Snoyman
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.
Erik
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. Michael