del(X, [X|T], T).
del(X, [Y|T], [Y|T1]) :- del(X, T, T1).

remove(A, B, C) :- del(A,B,C).
remove(A, B, B) :- not(member(A,B)).

removeAll([H|T], LPos, L) :- remove(H, LPos, LPos_H), 
			     removeAll(T, LPos_H, L), !.
removeAll([], L, L). 

