Пролог - Аргументы недостаточно проработаны

Я пишу небольшую программу, которая подсчитывает, сколько элементов в списке не являются числами. Вот мой код:

not_number([],0).
not_number([X|T],R):- 
    not(number(X)),
    R1 is R+1,  
    not_number(T,R1). 

not_number([_|Tail],Result):-
    not_number(Tail,Result).  

Если я выполняю код следующим образом:

?- not_number([1,2,3,5], R).

Я получаю, что R = 0 (как и должно быть)

R = 0.

Но если я добавлю символ в список:

?- not_number([1,2,3,5,a], R).

тогда я получаю эту ошибку:

ERROR: not_number/2: Arguments are not sufficiently instantiated
   Exception: (10) not_number([a], _G247) ? 

Может кто-нибудь объяснить, что не так с кодом? Я новичок в прологе.

Ответы на вопрос(3)

Ваш ответ на вопрос