Prolog - Argumentos não são suficientemente instanciados

Estou escrevendo um pequeno programa que conta quantos elementos em uma lista não são números. Aqui está o meu código:

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).  

Se eu executar código como este:

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

Estou recebendo que R = 0 (como deveria ser)

R = 0.

Mas se eu colocar um caractere na lista:

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

, então estou recebendo este erro:

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

Alguém pode explicar o que há de errado com o código? Eu sou novo no prólogo.