def memoize(func):
    """Cache forever."""
    cache = {}
    def memoizer():
        if 0 not in cache:
            cache[0] = func()
        return cache[0]
    return functools.wraps(func)(memoizer)