@EricGT not at all: I often find traces too verbose and too low level, and the user still has to analyze that manually. Some improvements are possible on that, I saw @DouglasRMiles doing that in some packages, and I myself tried with https://github.com/meditans/gestalt
Here I’m mainly talking about the methods described at page 331 of The Art of Prolog
, under the heading Enhanced meta-interpreter for debugging
, or in Shapiro’s thesis https://mitpress.mit.edu/books/algorithmic-program-debugging
There is some more literature on the topic by searching the keywords I suggested earlier, but the gist of it is defining a meta-interpreter
that, for example, can evaluate your code to a certain depth and identify what’s looping in case of non-termination, or use the user as an oracle to debug why a solution is not showing up.