(self, args, returnty, label=None, arg_names=None, variadic=False)
:param label:    The type label
        :param args:     A tuple of types representing the arguments to the function
        :param returnty: The return type of the function, or none for void
        :param variadic: Whether the function accepts varargs
:param label:    The type label
        :param args:     A tuple of types representing the arguments to the function
        :param returnty: The return type of the function, or none for void
        :param variadic: Whether the function accepts varargs
: param label : The type label : param args : A tuple of types representing the arguments to the function : param returnty : The return type of the function or none for void : param variadic : Whether the function accepts varargs
def __init__(self, args, returnty, label=None, arg_names=None, variadic=False):
        """
        :param label:    The type label
        :param args:     A tuple of types representing the arguments to the function
        :param returnty: The return type of the function, or none for void
        :param variadic: Whether the function accepts varargs
        """
        super().__init__(label=label)
        self.args = args
        self.returnty: Optional[SimType] = returnty
        self.arg_names = arg_names if arg_names else ()
        self.variadic = variadic
def __init__ ( self , args , returnty , label = None , arg_names = None , variadic = False ) : super ( ) . __init__ ( label = label ) self . args = args self . returnty : Optional [ SimType ] = returnty self . arg_names = arg_names if arg_names else ( ) self . variadic = variadic