Finally needed to use the *
at the toplevel to find a choice-point.
Normally I work on Windows and just use gtrace/0 in the code to find such problems but for a current problem need to work on Ubuntu and don’t have the graphics (X-windows) installed and working so gtrace/0 is out.
Was going nuts looking for the choice-point so when the toplevel showed true
instead of pressing the space bar or hitting enter just entered *
, bingo, out comes the call stack and identifies the predicate with the choice-point.
Turns out the code was using _
with setof/3 in the goal instead of using existential (caret) operator (^
),
Choice-point version
setof(A,info(A,_),As)
No choice-point version
setof(A,[B]^info(A,B),As)