id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,difficulty,testcase,blockedby,blocking,related
5593,Proposal: Remove Num superclass of Bits,basvandijk,,"This ticket summarizes the [http://www.haskell.org/pipermail/libraries/2011-October/016899.html discussion] on the proposal to remove the `Num` superclass of the `Bits` type class.

The proposal is to:

 * Remove the `Num` superclass of the `Bits` type class.

 * Remove the default implementations of `bit`, `testBit` and `popCount` since they use methods of `Num`.

 * Export the following convenience functions from `Data.Bits`:

{{{
bitDefault :: (Bits a, Num a) => Int -> a
bitDefault i = 1 `shiftL` i

testBitDefault ::  (Bits a, Num a) => a -> Int -> Bool
testBitDefault x i = (x .&. bit i) /= 0

popCountDefault :: (Bits a, Num a) => a -> Int
popCountDefault = go 0
 where
   go !c 0 = c
   go c w = go (c+1) (w .&. w - 1) -- clear the least significant
}}}

Attached are tickets for `base` and `ghc`.",task,closed,normal,7.6.1,libraries/base,7.2.1,fixed,,,Unknown/Multiple,Unknown/Multiple,None/Unknown,Unknown,,,,
