1solve(until(X,Y)) :- true.
    2
    3range(X,V1,V2) :- between(V1,V2,X).%, write(X),nl.
    4
    5safeNot(C) :- when(ground(C),\+call(C)).
    6
    7not_(G) :- %functor(G,Name,N), 
    8	G =.. L,
    9	functor(G,Name,N), 
   10	functor(G1,Name,N),
   11	L=[_,X|T],
   12	L1=[Y|T],
   13	write(L),nl,
   14	write(L1),nl,
   15	dif(X,Y),
   16	apply(Name,L1).
   17	%_n is N+1,
   18	%select(X,L,_n,L2),
   19	writeln([L2,X]).
   20	%arg(N,G,X),writeln(X).
   21	%G =.. L, functor(G,_,N),_n is N+1,
   22	%reverse(L,L1),	L1=[_,X|_],	writeln([L,X]),	dif(X). %functor(G,L).