Which one of the following prolog programs correctly implement "if G succeeds then execute goal P else execute goal q ?"
(A) if-else (G, P, q) :- !, call(G), call(P).
if-else (G, P, q) :- call(q).
(B) if-else (G, P, q) :- call(G), !, call(P).
if-else (G, P, q) :- call(q).
(C) if-else (G, P, q) :- call(G), call(P), !.
if-else (G, P, q) :- call(q).
(D) All of the above