A cache that behaves like a resettable Lazy: It generates a value from a given initializer lazily, however that cache can be cleared, so that the value will be regenerated when queried next
Lazy
Creates a new cache, that wraps the old cache and automatically calls @see clear before retrieving a value if shouldClear returns true