Units: a new pack for units and quantities

I was more refering to this thread:

Errors considered harmful
https://swi-prolog.discourse.group/t/errors-considered-harmful/3574

Which probably gives an understanding why clp(BNR)
silently fails, although it could maybe also throw an error if it
sees an arithmetic expression, it cannot deal with.

But I am not 100% sure where the error is. If (^)/2 is supposed
to deal with integers, what does that mean? I find this
discrepancy of (^)/2 and (**)/2:

With (^)/2:

?- P::real(0,1), {1 < P^2}.
false.

?- P::real(0,1), {1 >= P^2}.
false.

With (**)/2:

?- P::real(0,1), {1 < P**2}.
false.

?- P::real(0,1), {1 >= P**2}.
P::real(0, 1).

And I don’t understand it.