bitSize/bitSizeMaybe (was: Proposal: Add hasBitSize to Data.Bits.Bits)
Herbert Valerio Riedel
hvr at gnu.org
Wed Sep 18 13:56:22 CEST 2013
On 2012-09-24 at 01:28:20 +0200, Henning Thielemann wrote:
>> On Wed, Aug 22, 2012 at 07:49:49PM -0400, Edward Kmett wrote:
>>> We want to add
>>>
>>>> class Bits b where
>>>> bitSizeMaybe :: b -> Maybe Int
>>>
>>> and deprecate, but not remove bitSize this iteration, and make a separate
>>> class FiniteBits for things with a finite, fixed number of bits:
>>>
>>>> class Bits b => FiniteBits b where
>>>> finiteBitSize :: b -> Int
>>>> finiteBitSize = bitSize
>>
>> I've just pushed a patch implementing what I think the conclusion was.
>> Please let me know if you think I got it wrong.
>
> My last comment was, that FiniteBits is not an appropriate name, and
> then we arrived at FixedBits:
> http://www.haskell.org/pipermail/libraries/2012-August/018349.html
As it stands, the current implementation state is at
http://git.haskell.org/packages/base.git/commitdiff/cddc9024e67a6d4c01bb190839d0134af8c907e0
Now I have two questions:
1.) Currently, bitSizeMaybe and bitSize have no default implementation
defined. Shall we define mutually recursive default implementations
for these two functions to help smooth the transition?
e.g. in the style (just an example, not an actual proposal) of:
bitSize = fromJust . bitSizeMaybe
bitSizeMaybe = Just . bitSize
2.) As it's probably not to late to easily fix any bikeshedding/naming
issues: Shall the naming remain as implemented?
Cheers,
hvr
More information about the Libraries
mailing list