Single sided unification operator conflicts with our existing operator

We’ve got a bunch of files using “=>” for something else from earlier releases of swi prolog. but with newer releases we have a conflict. It’s (unfortunately) non-trivial to just change them all.

Is there a way to disable the single sided unification operator, so we can continue using ours, or are we stuck having to deal changing our operator to something else in all those files?

There are two types of conflict. If the operator declaration does not suit you, just use op/3 to change it to suit your needs. The other is if you have top level terms in a file whose principal operator is =>/2. Such rules are handled by the compiler. The only thing you can do is use term_expansion/2 to map these terms into something else.

For proper advice we need a bit more detail … a little snippet, are you using modules?

You can also have a look at "refactor" pack for SWI-Prolog. It takes some time to see how it can be used, but it is very powerful in making systematic changes to many files.