human
Solve the following python programming problem given the following code:
def cached(cache, typed = False) : 
    'Cache any function with the cache instance of your choosing. Note
    that the function wrapped should take only `hashable`_ arguments.

    Args:
        cache (Mapping): Any :class:`dict`-like object suitable for
            use as a cache. Instances of the :class:`LRU` and
            :class:`LRI` are good choices.
        typed (bool): Whether to factor argument types into the cache
            check. Default ``False``, setting to ``True`` causes the
            cache keys for ``3`` and ``3.0`` to be considered unequal.

    >>> my_cache = LRU()
    >>> @cached(my_cache)
    ... def cached_lower(x):
    ...     return x.lower()
    ...
    >>> cached_lower("CaChInG\'s FuN AgAiN!")
    "caching\'s fun again!"
    >>> len(my_cache)
    1

    .. _hashable: https://docs.python.org/2/glossary.html#term-hashable
    ' 
    def cached_func_decorator(func) : 
        return CachedFunction (func, cache, typed = typed) 
return <MASK> 
    
    Given the code above, what is a proper replacement for <MASK>?
assistant
#Here is a proper replacement for <MASK>.
def cached_func_decorator(