Quiero contar las ocurrencias de un elemento en una lista

Quiero contar las ocurrencias de un elemento en una lista, y si hay uno, entonces el predicado único sería verdadero, de lo contrario, falso. Sin embargo, si el elemento aparece más de una vez, Prolog lo encuentra verdadero. No se que hacer...

count([], X, 0).
count([X|T], X, Y) :- count(T, X, Z), Y is 1+Z, write(Z).
count([_|T], X, Z) :- count(T, X, Z).

unique(St, [Y|RestList]) :- count([Y|RestList], St, N), N =:= 1.

Respuestas a la pregunta(2)

Su respuesta a la pregunta