prune(A, B) :-
union(A, B, B).
union([X|Y],Z,W) :-
member(X,Z),
!, /* do not use next clauses */
union(Y,Z,W).
union([X|Y],Z,[X|W]) :- union(Y,Z,W).
union([],Z,Z).
prune([1,1,1,2],R).
cHJ1bmUoQSwgQikgOi0KdW5pb24oQSwgQiwgQikuCgp1bmlvbihbWHxZXSxaLFcpIDotIAogIG1lbWJlcihYLFopLCAKICAhLCAgICAgICAgLyogZG8gbm90ICB1c2UgbmV4dCBjbGF1c2VzICovCiAgdW5pb24oWSxaLFcpLiAKdW5pb24oW1h8WV0sWixbWHxXXSkgOi0gdW5pb24oWSxaLFcpLgp1bmlvbihbXSxaLFopLgoKCnBydW5lKFsxLDEsMSwyXSxSKS4KCg==