Proposal: Determining whether a Bits instance is FiniteBits
Zemyla
zemyla at gmail.com
Tue May 18 16:29:50 UTC 2021
Every Bits instance has to know that whether it's a FiniteBits
instance as well, due to bitSizeMaybe. Therefore, it should also be
able to tell a program that it is in fact a FiniteBits instance. There
should be a function added to Data.Bits.Bits:
withFiniteBits :: Bits a => a -> (FiniteBits a => r) -> r -> r
The default should be withFiniteBits _ _ x = x, at least for the next
several versions. bitSizeMaybe can be defined as
bitSizeMaybe x = withFiniteBits x (Just (finiteBitSize x)) Nothing
once everyone is on board with properly defining the value.
More information about the Libraries
mailing list