Ticket #5593 (closed task: fixed)
Proposal: Remove Num superclass of Bits
| Reported by: | basvandijk | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | 7.6.1 |
| Component: | libraries/base | Version: | 7.2.1 |
| Keywords: | Cc: | ||
| Operating System: | Unknown/Multiple | Architecture: | Unknown/Multiple |
| Type of failure: | None/Unknown | Difficulty: | Unknown |
| Test Case: | Blocked By: | ||
| Blocking: | Related Tickets: |
Description
This ticket summarizes the 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.
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

