Hello,
For future expansion of my program, I need to use a third-party Prolog module to perform a set of desired operations. The third-party module has the following declarations (and other predicates I need to use).
:- op(500, xfy, user:(+)).
:- op(400, xfy, user:(*)).
:- op(500, xfy, user:(-)).
:- op(400, xfy, user:(/)).
After including the third-party module in my main program, some of the problems that the program used to solve are no longer solvable. When I comment the above op/3
declarations out, things get back to normal. So my guess is that these op/3
declarations are the culprit.
Can somebody please explain to me what possible conflict could these declarations be introducing? I checked the page about op/3 and the operator priority seems to be matching. My program performs arithmetic operations (amongst other things), and I have no op/3
declarations in my program â well except the ones in the third-party module after adding it. Also, the third-party module is not imported as module per se, I use ensure_loaded/1 to include it in my program.
Many thanks,
Amine.