do not check for non-unifiability in dif:attribute_goals, which is sure to succeed, resulting in no goals being printed at top-level
@@ -41,7 +41,8 @@ verify_attributes(Var, Value, Goals) :-
dif(X, Y) :-
X \== Y,
( X \= Y -> true
- ; ( term_variables(X, XVars), term_variables(Y, YVars),
+ ; ( term_variables(X, XVars),
+ term_variables(Y, YVars),
dif_set_variables(XVars, X, Y),
dif_set_variables(YVars, X, Y)
)
@@ -49,9 +50,7 @@ dif(X, Y) :-
gather_dif_goals([]) --> [].
gather_dif_goals([(X \== Y) | Goals]) -->
- ( { X \= Y } -> []
- ; [dif:dif(X, Y)]
- ),
+ [dif:dif(X, Y)],
gather_dif_goals(Goals).
attribute_goals(X) -->
