On Fri, Oct 21, 2011 at 11:58 AM, Christian Maeder <[email protected]> wrote: > Am 20.10.2011 21:43, schrieb Michael Snoyman: >> >> On Wed, Oct 19, 2011 at 9:29 PM, Ketil Malde<[email protected]> wrote: >>> >>> Michael Snoyman<[email protected]> 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 _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
