/*	
   reverse(Xs,Ys) :- Ys is the reversal of the list Xs.
*/
	:- op(40,xfx,\).

	reverse(Xs,Ys) :- reverse_dl(Xs,Ys\[]).
	
	reverse_dl([X|Xs],Ys\Zs) :-
		reverse_dl(Xs,Ys\[X|Zs]).
	reverse_dl([],Xs\Xs).


%	Program 15.3: Reverse with difference-lists.
