Bits Problem
Glynn Clements
glynn.clements@virgin.net
Sun, 6 Apr 2003 14:35:45 +0100
Dominic Steinitz wrote:
> Can anyone explain this? Hugs doesn't complain.
>
> Prelude> :set --version
> The Glorious Glasgow Haskell Compilation System, version 5.04.1
>
> test.hs:5:
> No instance for (Num Bool)
> arising from the instance declaration at test.hs:5
> In the instance declaration for `Bits Bool'
>
> module Main(main) where
>
> import Bits
>
> instance Bits Bool where
> complement False = True
> complement True = False
GHC's definition of Bits requires that instances of Bits are also
instances of Num.
This constraint is required for the default implementations of bit and
testBit:
bit i = 1 `shift` i
x `testBit` i = (x .&. bit i) /= 0
--
Glynn Clements <glynn.clements@virgin.net>