Peculiar bug in gui tracer

image

image

Two X variables!

Looks like a bug. As usual, there is no cure without a complete example.

1 Like
:- op(920, xfx, ->>). % if-then statment    
:- meta_predicate ->>(:, :).
X ->> Y :- X -> Y ; true.

cp: [trace] [1] ?- 1=1 ->> 1=2.

Thanks. Pushed b1fc234e35defbffc03c9869031cf7e56e2b61ca to fix this.

P.s. use ->>(0,0) to tell the cross-referencer ->> is calling its argument and make goal expansion on the arguments work. You probably also want a goal_expansion/2 rule for this as a predicate turns all this into meta-calling which performs significantly worse than direct calling. Once upon a time the compiler should automatically inline stuff like this.