
On Fri, Oct 21, 2011 at 11:58 AM, Christian Maeder
Am 20.10.2011 21:43, schrieb Michael Snoyman:
On Wed, Oct 19, 2011 at 9:29 PM, Ketil Malde
wrote: Michael Snoyman
writes: sense to try and pursue something like what you're suggesting, but I think the default Show (Vector Word8) should be the one most useful, most of the time, and I think the general consensus seems to be the current ByteString instance fits that role.
Hm. I think it is slightly weird to display a numeric value (Word8) as a Char. Also, I would prefer a representation making the type explicit (but unlike ByteString, vector seems to add a type annotation.) Would you still support the truncating behavior for 'read' and values above 255?
(ByteString has two interfaces, ByteString and .Char8, but as there can be only one Show instance, I see why it works the way it does.)
Perhaps the correct semantic approach would be to have:
newtype Char8 = Char8 Word8
But I think that will break far too many applications to try to get it
would a new Word8 type be better to stay compatible?
newtype Word8 = C8 Data.Word.Word8
I don't think it would really fix much. Any code in the wild right now that refers to Word8 will be referring to Data.Word.Word8. Certainly calling the newtype Word8 will slightly simplify a migration, but (1) it will still require code changes and (2) I'd rather just bite the bullet and make a proper switch. Michael