def METHOD_NAME(self, target : Target, args : Tuple[Argument, ...], kwargs : Dict[str, Any]):
    python_ret_type = None
    if self.annotate_functionals and target.__module__ == 'torch.nn.functional':
        target_for_analysis = target
        if target in boolean_dispatched:
            # HACK: `boolean_dispatch` as used in `torch.nn.functional` makes it so that we have
            # a 2-way dispatch based on a boolean value. Here we check that the `true` and `false`
            # branches of the dispatch have exactly the same signature. If they do, use the `true`
            # branch signature for analysis. Otherwise, leave this un-normalized
            assert not isinstance(target, str)
            dispatched = boolean_dispatched[target]
            if_true, if_false = dispatched['if_true'], dispatched['if_false']
            # TODO: can we emit the union of these? What are the implications on TorchScript
            # compilation?
            if inspect.signature(if_true).return_annotation != inspect.signature(if_false).return_annotation:
                return super().METHOD_NAME(target, args, kwargs)
            target_for_analysis = if_true
        python_ret_type = self._extract_python_return_type(target_for_analysis)
    return_proxy = super().METHOD_NAME(target, args, kwargs)
    return_proxy.node.type = return_proxy.node.type if return_proxy.node.type else python_ret_type
    return return_proxy