On Sun, Oct 16, 2011 at 10:35 AM, Edward Kmett <ekmett@gmail.com> wrote:
On Sun, Oct 16, 2011 at 1:45 AM, Isaac Dupree <ml@isaac.cedarswampstudios.org> wrote:As others observed, "one" is only useful for the "bit" method default, and might be meaningless for an "instance () Bits" (whereas the rest of the class makes sense for () as a zero-bit instance, albeit a use doesn't come to mind). Or, similarly to (), a bit-vector which contains its length statically in its type: it would be simpler if length zero was just as valid as any other length. And it would be a bit strange to define 'one' as a value equal to 'zero'.
It isn't entirely meaningless it is just out of range. It is perfectly well defined for me to set the 200th bit of a 64 bit integer, it just doesn't do anything. ;) Similarly setting the 1 bit of () would result in (), since there are no bits to set.