<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def full_signature(self):
 """ The full signature of a ``"function"`` node. **Return** :class:`python:str` The full signature of the function, including template, return type, name, and parameter types. **Raises** :class:`python:RuntimeError` If ``self.kind != "function"``. """

        if self.kind == "function":
            return "{template}{return_type} {name}({parameters})".format(
                template="template <{0}> ".format(", ".join(self.template)) if self.template else "",
                return_type=self.return_type,
                name=self.name,
                parameters=", ".join(self.parameters)
            )
        raise RuntimeError(
            "full_signature may only be called for a 'function', but {name} is a '{kind}' node.".format(
                name=self.name, kind=self.kind
            )
        )