Having loaded a module to be debugged, you can trace through its execution
in the normal way. When the debugger stops at a port, the procedure being
debugged is displayed with its module name as a prefix unless the module is
spy/1 depends on the source module.
It can be useful to override this during debugging. For example,
| ?- spy mod1:f/3.
puts a spypoint on
f/3 in module
It can also be useful to call directly a predicate that is private to its module in order to test that it is doing the right thing. This can be done by prefixing the goal with its module; for example,
| ?- mod1:f(a,b,X).