:- op(5,  xfy, .).
:- op(5,  fy, .).
:- op(8,  fy, '`').	% quote
:- initialization(op(8,  fy, '`'), restore).	% quote
:- op(10,  fy, *).
:- op(10,  fy, ?).
:- op(10,  fy, @).
:- op(10,  fy, #).
:- op(10,  fy, :).
:- op(60, yfx, @).
:- initialization(op(60, yfx, @), restore).
:- op(60, yfx, #).
:- op(450, xfx, (..)).
:- op(650, xfy, (::)).
:- op(700, xfx, in).
:- op(710, fy,  ~).
:- op(710, fx, (!)).
:- op(750, yfx, &).

:- current_op(X, Y, =),		op(X, Y, :=).
:- current_op(P, F, =),		op(P, F, =>).
:- current_op(X, Y, ->),	op(X, Y, \).
:- current_op(X, Y, \),		op(X, Y, \\).
:- current_op(P, T, \),		op(P, T, <-).
:- current_op(P, T, \),		op(P, T, <--).
:- current_op(P, T, \),		op(P, T, <->).
:- current_op(P, T, \),		op(P, T, <-->).
:- current_op(X, Y, user:($)),	op(X, Y, $$).
:- current_op(X, Y, (+)),
	memberchk(Y, [xfy,yfx]),
 	X0 is X + 10,		op(X0, Y, (++)).
:- current_op(X, Y, (?-)),	op(X, Y, (??-)).
:- current_op(P, _, :-),
	Q is P - 100,		op(Q, fy, include).