@lennart this is the default behavior starting with version 5 of NCAlgebra. Mixing
** is a source of much trouble as it can easily generate expressions that cannot be correctly interpreted. Think
a**b * c when
c are all noncommutative. So, after much debate, we decided to start overloading
Power for noncommutative symbols. It is done with UpValues so it should not be too intrusive.
This was however not an easy decision. Canonizing expressions is a much needed step in any symbolic computation and this is exactly why MMA also canonizes
Times[p, p] as
Power[p,2]! However, as you noticed,
a * b is still
Times[a, b]! Indeed, it is not possible to easily overload
Times without been too intrusive. Think
Times[b, a] that gets alphabetized as
Times[a, b] before any rule can be applied. As a compromise we have introduced the command
NCConsistentQ that will return
True is an expression is a consistent NC expression.