Blaisorblade/pts — pull request #1 by Blaisorblade (2014-07-15 09:41:07+00:00)
Title: Recover performance WIP

Don't merge yet. But this alone goes from ~5s to ~2s. This breaks --debug, I propose to re-enable this only if and when somebody figures out how to do that without this cost.

I saw this thanks to profiling. Amazingly, the speedup is much more than profiling suggested — I think GHC does not do sample-based profiling, as the overheads are huge and the relevance of results lower.

The next offender is `freshvarl`, which calls `compare` on `Name` for 6% of the execution time.

On my laptop:
```
$ time pts --quiet --instance uu UU.lpts

real	0m4.869s
user	0m4.799s
sys	0m0.054s
$ time pts --quiet --instance uu UU.lpts

real	0m1.965s
user	0m1.906s
sys	0m0.031s
```