code: def cached(size):
      
      def decorator(func):
          cached_func = _Cached(func, size)
          return lambda *a, **kw: cached_func(*a, **kw)
      return decorator
docs: A caching decorator based on parameter objects