# tracing messages

Serge D. Mechveliani mechvel at botik.ru
Thu Jan 28 09:27:06 EST 2010

```Dear GHC team,

this is on  tracing in  ghc-6.12.1
(made from source on Debian Linux i-386-like machine).

I wonder what is the reason for this tracing message
(starting with  `Step1 ...' ):

----------------------------
...
equations calc =
[j < i -> true,
m <= p -> true,
p <= q -> true,
q <= n -> true,
(A p) <= (A q) -> false,
(X <= Y) | (Y < X) -> true,
| {not (Y <= n), not (m <= X), not (X < i), not (j < Y), (A X) <= (A Y)} ->
true,
| {not (X <= Y), not (Y <= j), not (m <= X), (A X) <= (A Y)} -> true,
| {not (XStep 1.  Starting mutual pre-reduction. The number of rules is  25.
Pre-reduction done. Initial numbers of equations is  9,
after reduction:  9,  the pre-reduction cost is 484.
...
...
----------------------------

The  main  program does the following in succession:
1) finds  eqs,
2) prints
"equations calc =\n",      shows eqs "\n\n",
"Starting completion.\n",
"remaining goals = ",
3) finds  res  by completion (`complete'),
4) prints
shows (completionGoalRem res) "\n"

The  trace  calls are set only in the function `complete'.
The above message
Step 1.  Starting mutual pre-reduction. The number of rules is  25.
Pre-reduction done. Initial numbers of equations is  9,

occurs the first message of this tracing.
But the main program must have printed the full last equation in
eqs,  and only after this any tracing message could appear.
Instead, it breaks the last equation printing with the tracing messages.
The further evaluation is long, so I interrupted it, without seeing the
final result. But this printing break looks strange, because  eqs
does not depend on the results of `complete', the reverse holds: the
latter applies to  eqs.
Generally, I often observe an effect of this kind; it is harmless, but
I wonder, what might be the reason.

Regards,

-----------------
Serge Mechveliani
mechvel at botik.ru
```