Spotted in the gitter channel
The big thing for me was that it wasn't clear that the cache could be reused. It talks about the state monad and the cache being immutable which caused me to make some bad assumptions, even after diving into the code.
This should be more explicit and clear to not confuse people.