Introduce the cache. Add string-level equality tests.

With this, we have 7 errors in 185 tests.