Prolog - Los argumentos no están suficientemente instanciados

Estoy escribiendo un pequeño programa que cuenta cuántos elementos de una lista no son números. Aquí está mi 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).  

Si ejecuto un código como este:

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

Estoy obteniendo que R = 0 (como debería ser)

R = 0.

Pero si pongo un personaje en la lista:

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

entonces recibo este error:

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

¿Alguien puede explicar qué tiene de malo el código? Soy nuevo en prolog.

Respuestas a la pregunta(3)

Su respuesta a la pregunta