bugfix EvalCache never used!
Forgot to declare h as a *reference* in the assignment
h = EC.probe(key)
The whole idea is that h is a reference, so modifying it actually modifies the entry in the Eval Cache table. A more explicit way of doing it would have been to make a copy, and store it explicitely at the end like EC.store(h). But it could be slightly suboptimal performance wise, so prefer the reference technique.

TODO: I need to comment this code, because it's obscure, and it took me a while to figure out how it works, despite having written it not so long ago.

This is a non functional change, but quite a speedup: 11% faster on bench(12).