Prolog - Argumente werden nicht ausreichend instanziiert

Ich schreibe ein kleines Programm, das zählt, wie viele Elemente in einer Liste keine Zahlen sind. Hier ist mein Code:

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

Wenn ich Code wie folgt ausführe:

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

Ich bekomme das R = 0 (wie es sein sollte)

R = 0.

Aber wenn ich ein Zeichen in die Liste setze:

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

then bekomme ich diesen Fehler:

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

Kann jemand erklären, was mit Code nicht stimmt? Ich bin neu in Prolog.