compile0(F) :- prolog_flag(single_var_warnings,_),!, prolog_flag(single_var_warnings,X,off), prolog_flag(discontiguous_warnings,Y,off), compile(F), prolog_flag(single_var_warnings,_,X), prolog_flag(discontiguous_warnings,_,Y). compile0(F) :- style_check(-singleton),!, style_check(-discontiguous),!, compile(F), style_check(+discontiguous), style_check(+singleton). compile0(F) :- compile(F). % copy(X,Y) :- copy_term(X,Y). % for sicstus prolog copy(X, Y) :- copy(X, Y, var, _). copy(X, Y, Vlist0, Vlist1) :- nonvar(X), functor(X, F, A), functor(Y, F, A), !, copy(A, X, Y, Vlist0, Vlist1). copy(X, Y, Vlist0, Vlist0) :- map(Vlist0, X, Y), !. copy(X, Y, Vlist0, var(X, Y, Vlist0)). copy(0, _, _, Vlist0, Vlist0) :- !. copy(N, X, Y, Vlist0, Vlist2) :- arg(N, X, Xn), copy(Xn, Yn, Vlist0, Vlist1), arg(N, Y, Yn), M is N-1, !, copy(M, X, Y, Vlist1, Vlist2). map(var(X, Y, _), Var, Y) :- X==Var, !. map(var(_,_,Rest), Var, Y) :- map(Rest, Var, Y). r_abolish(A,B) :- functor(C,A,B),retractall(C). put([C]) :- !, char_code(Char,C),put_char(Char). put(C) :- char_code(Char,C),put_char(Char). ttyflush :- flush_output. nofileerrors :- prolog_flag(fileerrors,off,_). fileerrors :- prolog_flag(fileerrors,on,_). tab(0) :-!. tab(N) :- N>0, N1 is N-1,write(' '),tab(N1).