I believe the approach I took is the logical one for the memoization pattern. If it was doing something besides just returning the memoized value, this would be far more obvious. But I patterns shouldn't be followed that strictly, so sure.

Yes, `check_entry` is messy and does too many things in the same function, but I think it follows a fairly readable flow, and avoids unnecessary nesting.