% example adopted from: % Programming Language Prolog Part 2, Modules % Committee Draft - January 14, 1998 X3J17/97/5 :- object(tracer). :- info([ version is 2, author is 'Paulo Moura', date is 2000/7/24, comment is 'Tracer for a goal call and exit ports.']). :- public(trace/1). :- metapredicate(trace(::)). :- mode(trace(+callable), zero_or_more). :- info(trace/1, [ comment is '.', argnames is ['Goal']]). trace(Goal) :- write('call: '), writeq(Goal), nl, call(Goal), write('exit: '), writeq(Goal), nl. trace(Goal) :- write('fail: '), writeq(Goal), nl, fail. :- end_object.