Ran into some #Haskell #heisenbug with stable names.
So I makeStableName on a bunch of evaluated objects. Later when I look them up, I didn't re-eval (since they are already evaluated supposedly).
But, I suspect under some conditions the lookup function might get some thunk (to the already eval'd object), somehow. Resulting in a miss.
To debug, in the miss path, I added an eval and a lookup on that. But that made the miss go away in the first place.
So kids, always eval your stable stuff.