Needs a comment to explain why `Weak`-ness is required by describing lifecycle of entries vs compiler runs.