list_reversed(Xs, Ys) :-
	list_reversed(Xs, Ys, []).

list_reversed([], Ys, Ys).
list_reversed([X|Xs], Ys0, Ys) :-
	list_reversed(Xs, Ys0, [X|Ys]).
:- pe list_reversed([X1,X2,X3,X4,X5,X6,X7,X8|Xs], Ys).
@@	list_reversed([B,C,D,E,F,G,H,I|J], A) :-
@@		'list_reversed.1'(B, C, D, E, F, G, H, I, J, A).
@@
@@	% 'list_reversed.1'(A,B,C,D,E,F,G,H,I,J):-list_reversed([A,B,C,D,E,F,G,H|I],J)
@@	'list_reversed.1'(A, B, C, D, E, F, G, H, I, J) :-
@@		list_reversed2(I, J, H, G, F, E, D, C, B, A, []).
@@
@@	% list_reversed2(A,B,C,D,E,F,G,H,I,J,[]):-list_reversed(A,B,[C,D,E,F,G,H,I,J])
@@	list_reversed2([], [A,B,C,D,E,F,G,H|I], A, B, C, D, E, F, G, H, I).
@@	list_reversed2([K|L], A, B, C, D, E, F, G, H, I, J) :-
@@		list_reversed2(L, A, K, B, C, D, E, F, G, H, [I|J]).
-----         n599 ------------------------
Ok, so in this case, the specialization does not really improve the program. In each inference, the program now shifts around all arguments.
**NEXT:I/O.
[logprog|GUPU|UWN]