Description
If we make the Resource object mutable (it's per transaction / evaluation), we can move some state into it for evaluation. In addition to fixing a tiny race condition in the RAND operator, we can then also "cache" intermediate results, that might be computationally expensive (such as Maxmind GeoIP lookups).