3 ms·
That's an issue with Data.ByteString.Char8, not with OverloadedStrings.
by startling 13y ago
That's an issue with Data.ByteString.Char8, not with OverloadedStrings.
- chongli 13y agoWhen you use OverloadedStrings in conjunction with Data.ByteString.Char8 it becomes OverloadedStrings' issue as well. Compile-time transformations are not supposed to break your program.
- tel 13y agoI 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`!