Hrm, I don't remember discussing that bitwise should use $abs for $xor $and $or. There's a big difference between using -2 (make something be an even number) vs +2 (make something be 2 or 0), and I can't see any scripts finding the $not($abs(N1)) behavior useful.

//echo -a $and(255,-2) vs %null.bf $and(255,-2) $and(255,+2)

Rather than return an obviously wrong answer, I'm wondering if it's better to either require the 3rd 'bits' parameter be present when 1 term is negative for $and $or $xor (and when both terms are negative for $and $or), or to treat $xor(-N1,+N2) as invalid syntax in .bf mode.

Likewise, I'm not so sure that $not should have an implied bitmask that's based on the bit length of $abs(-N), since that assumes N always has the appropriate bit length.

//echo -a doubles $not(-9) $not(-17) vs $not(-9,8) $not(-17,8) bf %null.bf $not(-9) $not(-17) vs $not(-9,8) $not(-17,8)

In fact, the parm2 used by .bf mode looks like a useful feature for doubles mode instead of defaulting as $not(number,32)