code: def infer_call_result(self, caller, context=None):
          
          context = contextmod.bind_context_to_node(context, self)
          inferred = False
          for node in self._proxied.igetattr("__call__", context):
              if node is util.Uninferable or not node.callable():
                  continue
              for res in node.infer_call_result(caller, context):
                  inferred = True
                  yield res
          if not inferred:
              raise exceptions.InferenceError(node=self, caller=caller, context=context)
docs: infer what a class instance is returning when called