<div dir="auto">+1, but we should also do this for sizeOf and alignment in Foreign.Storable.</div><div class="gmail_extra"><br><div class="gmail_quote">On Dec 13, 2017 10:53 PM, "M Farkas-Dyck" <<a href="mailto:strake888@gmail.com">strake888@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I propose to add the following methods to `Bits` and `FiniteBits` classes:<br>
<br>
class Bits a where<br>
    ...<br>
<br>
    bitSizeMaybe' :: Proxy a -> Maybe Int<br>
<br>
class FiniteBits b where<br>
    ...<br>
<br>
    finiteBitSize' :: Proxy b -> Int<br>
<br>
Rationale: working with an arbitrary `Bits a => a`, one may not have a value of type `a` as argument to `bitSizeMaybe` or `finiteBitSize`, and writing `undefined` makes me feel dirty.<br>
______________________________<wbr>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bi<wbr>n/mailman/listinfo/libraries</a><br>
</blockquote></div></div>