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