diff --git a/pl/modules.yap b/pl/modules.yap index 6be66e2eb..8cd4c8b77 100644 --- a/pl/modules.yap +++ b/pl/modules.yap @@ -765,7 +765,11 @@ expand_goal(G, NG) :- '$do_expand'(G, Mod, prolog, []-G, NG), !. expand_goal(G, G). -'$do_expand'(G, _HM, _BM, _SM, _, G) :- var(G), !. +'$do_expand'(G, _HM, _BM, SM, HVars-_, OG) :- var(G), !, + ( lists:identical_member(G, HVars) -> OG = G; OG = SM:G). +% nothing I can do here: +'$do_expand'(M:G, _HM, _BM, _SM, _HVars, M:G) :- !, + nonvar(M), var(G), !. '$do_expand'(M:G, HM, _BM, _SM, HVars, M:GI) :- !, nonvar(M), '$do_expand'(G, HM, M, M, HVars, GI).