get (0::Word8) getWord8be 0
Make that
put (0 :: Word16) putWord16be 0
?
Yes, thanks for the correction. Word8 was a bad choice since endianness is not an issue. Thanks for all the advice. It seems I should avoid making my types instances of Binary. In fact, this relates to another design issue I've been grappling with, supporting multiple versions of the protocol. Probably I'll need something like, putProtVersion1, putProtVersion2, etc. Or something along this line. On Tue, May 11, 2010 at 3:41 PM, Daniel Fischer <daniel.is.fischer@web.de>wrote:
On Tuesday 11 May 2010 21:01:19, Stephen Tetley wrote:
On 11 May 2010 19:16, Daniel Fischer <daniel.is.fischer@web.de> wrote:
Int8 and Word8 are unproblematic (unless you have a ones-complement machine), the problems appear only for larger types, [SNIP]
Hi Daniel
Likely I was revealing a personal bias on that one, the only protocol I've implemented where Int8 has featured has been MIDI.
If MIDI isn't ones-complement, my codes - I've written decoders / encoders several times - have been wrong for years...
I've no idea how MIDI messages/files/streams are interpreted, I was thinking about the hardware, how the ALU interprets the bit-pattern for arithmetic.
Best wishes
Stephen
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners