Lazily evaluate and cache expensive hashes