There is currently no way to know whether or not calling Data.Bits.bitSize will crash your program.
I propose extending the Bits class to include:
hasBitSize :: Bits b => b -> Bool
such that it returns False for Integer and True for the other instances
since the vast majority of instances are finite, it may be reasonable to set the default definition to
hasBitSize _ = False
Discussion Period: 2 weeks