Que utilidade tem if_ / 3?

O predicadoif_/3 parece serbastante popular entre os poucos colaboradores principais na parte Prolog do Stack Overflow.

Esse predicado é implementado como tal, cortesia de @false:

if_(If_1, Then_0, Else_0) :-
   call(If_1, T),
   (  T == true -> call(Then_0)
   ;  T == false -> call(Else_0)
   ;  nonvar(T) -> throw(error(type_error(boolean,T),_))
   ;  /* var(T) */ throw(error(instantiation_error,_))
   ).

No entanto, não consegui encontrar umclaro, simples e conciso explicação sobre o que esse predicado faz e qual o uso comparado, por exemplo. a clássica construção if-then-else do Prologif -> then ; else.

A maioria dos links que encontrei usam diretamente esse predicado e fornecem poucas explicações sobre por que ele é usado, que um não especialista em Prolog poderia entender facilmente.

questionAnswers(2)

yourAnswerToTheQuestion