Phase_cache.With_cacheSourceapply ~cache_disabling ~force_invalidation phase_input runs the phase computation Phase.f phase_input, if there's some cache_disabling. Otherwise, the phase computation is run with a cache mechanism. Whether the cache is invalidated depends on the outcome of a Phase.Fingerprint comparison between the current fingerprint and the last one. Additionally, the invalidation of the cache can be forced by setting the force_invalidation parameter to true.