2 ms·
I don't think of it as a compile-time transformation but instead a weakening of the semantics of string literals. Without we have "foo" :: String and with
by tel 13y ago
I don't think of it as a compile-time transformation but instead a weakening of the semantics of string literals. Without we have
"foo" :: String
and with we have
"foo" :: IsString a => a
much like
3 :: Num a => a
It inherits all of the same weaknesses and strengths that we have with the Num typeclass.
- chongli 13y agoAhh, very good. Then perhaps our target of inquiry ought to be the IsString class. Ought it have some laws we can expect instances to follow, akin to the Monad laws? At the moment, we can write: instance IsString () where fromString = const () And there's nothing wrong with it!
- tel 13y agoTotally agree that it's a weak class. I'd love it if `IsList` were a subclass of `Foldable`!