In trace mode, it appears as though “system” predicates are not traced:
foo(X) :- atom(X). ?- trace. true. [trace] ?- foo(a). Call: (10) foo(a) ? creep Exit: (10) foo(a) ? creep true.
How is this accomplished? Is there a way to turn this off (so I can see the system calls)? And is there conversely a way to hide my own predicates like that?