Is it possible to use atom as both operator and predicate. Something along the lines :
:- op(101, fy, rule).
:- op(99, xfy, ==>).
rule(R) :- write_canonical(R).
So that I can say :
rule ...blah... ==> ...abc..
instead of :
rule( ...blah... ==> ...abc.).