
% Identical to built-in predicate append/3, although it uses "cons"
% As a defined predicate, this version allows tracing

append(cons(S,X),Y,cons(S,Z)) :- append(X,Y,Z).
append(nil,X,X).

