<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def provides(self, call_name):
 """Provide a call. The call acts as a stub -- no error is raised if it is not called.:: Declaring ``provides()`` multiple times is the same as declaring :func:`fudge.Fake.next_call` """

        if call_name in self._declared_calls:
            return self.next_call(for_method=call_name)

        self._last_declared_call_name = call_name
        c = Call(self, call_name)
        self._declare_call(call_name, c)
        return self