# Peculiar bug in gui tracer

**URL:** <https://swi-prolog.discourse.group/t/peculiar-bug-in-gui-tracer/461>\
**Category:** General\
**Created:** [March 29, 2019, 4:58pm UTC](https://swi-prolog.discourse.group/t/peculiar-bug-in-gui-tracer/461 "2019-03-29T16:58:48Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![abaljeu](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/abaljeu/32/136_2.png) [@abaljeu](https://swi-prolog.discourse.group/u/abaljeu)\
**Post date:** [March 29, 2019, 4:58pm UTC](https://swi-prolog.discourse.group/t/peculiar-bug-in-gui-tracer/461/1 "2019-03-29T16:58:48Z")

</div>

![image](https://global.discourse-cdn.com/free1/uploads/swiprolog/original/1X/19a3a3b39897f5d387732627fc26cfe9d987efe7.png)

![image](https://global.discourse-cdn.com/free1/uploads/swiprolog/original/1X/00934c15daab1616bd225303dbb5fbc3164787fb.png)

Two X variables!

---

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [March 29, 2019, 6:07pm UTC](https://swi-prolog.discourse.group/t/peculiar-bug-in-gui-tracer/461/2 "2019-03-29T18:07:50Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![abaljeu](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/abaljeu/32/136_2.png) [@abaljeu](https://swi-prolog.discourse.group/u/abaljeu)\
**Post date:** [March 29, 2019, 8:47pm UTC](https://swi-prolog.discourse.group/t/peculiar-bug-in-gui-tracer/461/3 "2019-03-29T20:47:44Z")

</div>

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

```

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

---

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [March 30, 2019, 8:38am UTC](https://swi-prolog.discourse.group/t/peculiar-bug-in-gui-tracer/461/4 "2019-03-30T08:38:54Z")

</div>

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.
