Is this a recent change? I've downloaded Ian Lynagh's DES module and it doesn't compile because of this. I assume it used to. I don't see the rationale for this. I can see Bool can be an instance of Bit but why does it need to be an instance of Num?
Dominic Steinitz ----- Original Message ----- From: "Glynn Clements" <[EMAIL PROTECTED]> To: "Dominic Steinitz" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Sunday, April 06, 2003 2:35 PM Subject: Re: Bits Problem > > 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 <[EMAIL PROTECTED]> _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell