Ticket #5593 (closed task: fixed)

Opened 7 months ago

Last modified 5 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 7 months ago.
Patch for base
0001-Add-extra-Num-constraints-since-the-Num-superclass-o.patch Download (1.8 KB) - added by basvandijk 7 months ago.
Patch for ghc

Change History

Changed 7 months ago by basvandijk

Patch for base

Changed 7 months ago by basvandijk

Patch for ghc

Changed 6 months ago by igloo

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

Changed 5 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.