[eclipse]: [user]. % define a macro tr_a(a(X), b(X,X)). :- define_macro(a/1, tr_a/2, []). yes. [eclipse]: current_macro(F, T, O, M). % list visible macros F = (-->) / 2 % predefined macro T = trdcg / 3 O = [global, clause] M = macro More? (;) F = (if) / 2 % predefined macro T = tr_if / 2 O = [global, clause] M = coroutine More? (;) F = a / 1 % our user defined macro T = tr_a / 2 O = [local] M = eclipse More? (;) F = no_macro_expansion / 1 % predefined macro T = trprotect / 2 O = [global, protect_arg] M = macro More? (;) no (more) solution.