p(X) :-
    call(X).

q(1).
q(2).

?- p(q(X)).
?- not p(q(X)).

?- not q(X).
?- q(X).


call_list([]).
call_list([X|Xs]) :-
    call(X),
    call_list(Xs).

?- call_list([q(X),not q(Y)]).