Concerning SWI-Prolog version 7.3.16: Is there a particular reason why
call_with_inference_limit/3 leaves behind a superfluous choice point in the case
Result == inference_limit_exceeded?
Looking at the source code of
boot/syspred.pl, I think that changing
(Result0 == ! -> ! ; true) to
(Result0 \== inference_limit_exceeded -> ! ; true) in line #665 could do the trick without causing much havoc... Have I been missing something?