<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def __wrap( self, method_name ):
 """ This method actually does the wrapping. When it's given a method to copy it returns that method with facilities to log the call so it can be repeated. :param str method_name: The name of the method precisely as it's called on the object to wrap. :rtype lambda function: """

        return lambda *args, **kwargs: Facade( self.__cache( method_name, *args, **kwargs ), list(self.__exclusion_list) )