Hi,

I found a "Pentomino Puzzle Solver in Haskell". Trying it, I got the error message

ERROR "D:\Games\Pentominos\PolyominoHaskell\FillBoard.lhs":208 - Instances of (Num 
Word64, Bits Word64) required for definition of ominoBits

So I looked into Word.hs and Bits.hs. While making Word64 an instance of Num was 
relatively straightforward by converting to Integer and back, I did not immediately 
understand the semantics of the bit operations. I started to experiment:

Word> (bit 7 :: Word8) `shift` 2
0

...

Now I'm totally confused: on the machine in my office, where I'm writing this mail, 
using Hugs December 2001 with Windows XP, I get the above, correct result. But at 
home, with the same Hugs and Windows NT 4, I get 512. Ah, I see, it's the show 
function...

Word> :s -u
Word> (bit 7 :: Word8) `shift` 2
512

But should it be left to the show to put the result into its range?

newtype Word8  = W8 Word32

word8ToWord32 (W8 x) = x .&. 0xff
word32ToWord8 = W8

Shouldn't it be the other way round

word8ToWord32 (W8 x) = x
word32ToWord8 = W8 (x .&. 0xff)

?

Kind regards,

Joachim Wolf Laudien

_______________________________________________
Hugs-Bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/hugs-bugs

Reply via email to