Proposal: Determining whether a Bits instance is FiniteBits

Carter Schonwald carter.schonwald at
Thu May 27 17:17:51 UTC 2021

What would the final / eventual instance be defined as?

Or do you mean that would be a default stub so code doesn’t crash
immediately on upgrade if it doesn’t have a definition?

On Tue, May 18, 2021 at 12:30 PM Zemyla <zemyla at> wrote:

> 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.
> _______________________________________________
> Libraries mailing list
> Libraries at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Libraries mailing list