Ticket #5593 (closed task: fixed)

Opened 19 months ago

Last modified 17 months ago

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

0001-Remove-Num-superclass-of-Bits.patch Download (12.1 KB) - added by basvandijk 19 months ago.
Patch for base
0001-Add-extra-Num-constraints-since-the-Num-superclass-o.patch Download (1.8 KB) - added by basvandijk 19 months ago.
Patch for ghc

Change History

Changed 19 months ago by basvandijk

Patch for base

Changed 19 months ago by basvandijk

Patch for ghc

Changed 18 months ago by igloo

  • status changed from new to patch
  • milestone set to 7.6.1

Changed 17 months ago by igloo

  • status changed from patch to closed
  • difficulty set to Unknown
  • resolution set to fixed

Thanks, applied:

commit f99cee0118c6bbcd0283ea795a3bb6ff6090b5b5
Author: Bas van Dijk <v.dijk.bas@gmail.com>
Date:   Sat Oct 29 03:33:08 2011 +0200

    Remove Num superclass of Bits Add and export bitDefault, testBitDefault and
popCountDefault from Data.Bits.

commit 804108f0c0fbc2c5f926e4cb4d30b3891443a079

Author: Bas van Dijk <v.dijk.bas@gmail.com>
Date:   Sat Oct 29 03:38:07 2011 +0200

    Add extra Num constraints since the Num superclass of Bits is removed
Note: See TracTickets for help on using tickets.