=Notice that the precedence of
xfx, which is different from that of
(^)/2, which is
This may lead to surprises such as the following succeeding:
?- Y = 2, X is 2 ^ -Y. Y = 2, X = 0.25.
while the following throws an exception:
?- Y = 2, X is 2 ** -Y. ERROR: Syntax error: Operator priority clash ERROR: Y = 2, X is 2 * ERROR: ** here ** ERROR: * -Y .
The introduction of brackets in the exponent of
(**)/2 solves this.=