1:- module(toplevel_variable_names, []).    2:- set_module(class(library)).    3
    4
    5user:expand_query(Goal, Expanded, Bindings, ExpandedBindings):-    
    6    % Have vars to expand and varnames are empty
    7    quietly((Bindings\==[],prolog_load_context(variable_names,Vs), Vs ==[])),
    8    b_setval('$variable_names', Bindings),  % this prevents the loop
    9    debug(expand_query,'~q',[b_setval('$variable_names', Bindings)]),
   10    (toplevel_variables:expand_query(Goal, Expanded0, Bindings, ExpandedBindings0) -> true; 
   11      (Goal = Expanded0, Bindings = ExpandedBindings0)),
   12    (user:expand_query(Expanded0, Expanded, ExpandedBindings0, ExpandedBindings) -> true ; 
   13     (Expanded0 = Expanded, ExpandedBindings0 = ExpandedBindings))