2:- use_module(library('clp/clpfd')).    3
    4:-  op(750, fy, #\+).    5:-  op(700, xfx, ##).    6:-  op(760, yfx, #/\).    7:-  op(770, yfx, #\/).    8:-  op(780, yfx, #=>).    9:-  op(790, yfx, #<=>).   10:-  op(800, xfx, isd).   11:-  op(400, yfx, ('*`')). 
   12
   13:-  op(750, fy, local).   14
   15:- meta_predicate local(:).   16
   17local(_M:Call) :- Call.
   18
   19variable(Var):-nb_setval(Var,[]).
   20variable(Var,VAL):-nb_setval(Var,VAL).
   21setval(Var,VAL):-nb_setval(Var,VAL).
   22getval(Var,VAL):-nb_getval(Var,VAL).
   23
   24% summary:"Succeeds if Term is a domain variable.
   25is_domain(T):-clpfd:fd_get(T, Dom, _), !, T in Dom.
   26
   27setval(X):-trace,nb_setval(X,[]).
   28
   29% copy_term_vars(?Vars, ?OldTerm, -NewTerm)
   30copy_term_vars(Vars,OldTerm,NewTerm):-copy_term(OldTerm,NewTerm),term_variables(NewTerm,Vars).
   31
   32#\+(C):- #\(C).
   33
   34is_predicate(F/A):-current_predicate(F/A), functor(P,F,A),predicate_property(P, visible)