Explain the difference between useCallback and useMemo.
Implement describe_hook(hook_name) to return the purpose, cached entity, and typical use of either React hook. Return None for unsupported hook names.
The input is a string, either "useCallback" or "useMemo". Return a dictionary with keys purpose, caches, and use_when.
def describe_hook(hook_name):