Like I mentioned earlier.
I don't think a fully fleshed out version of the alternative makes sense today.
Too many small changes would have to go in, and you'd need at least one factoring of the Bits class to make it compelling.
But since you insist on trying to force me to provide a fully concrete realization of a counter-proposal, here:
A fully consistent version of it would be to adopt short-circuiting across all Bits instances (ugh), factor out testBit somehow, then consider converting
(&&) = (.&.)
(||) = (.|.)
and = getAll . foldMap All
or = Any . foldMap Any
any f = getAny . foldMap (Any . f)
all f = getAll . foldMap (All . f)
not = complement
for a suitably generalized Any and All.
If testBit didn't exist in the class, then you could support (&&) and (||) for function spaces.
e.g.
isAlnum = isDigit || isAlpha
with no new classes being constructed.
In a world where the current proposal does come to fruition, such a class would be a separate ad hoc construction, and well, frankly that just would probably never happen.
Like I said repeatedly above, I believe such a proposal doesn't have a chance in hell of succeeding today, but the existence of possibilities in that design space are why I'm hesitant to rush forward here.
-Edward