complementBit @Natural uses slow default definition
In this case the default definition involves allocating the bit i
result:
x `complementBit` i = x `xor` bit i
This allocation could be avoided by using the bigNatComplementBit#
function from ghc-bignum
.