def _type_me(self, argtys, kws):
        """
        Implement AbstractTemplate.generic() for the typing class
        built by gufunc._install_type().

        Return the call-site signature after either validating the
        element-wise signature or compiling for it.
        """
        assert not kws
        ufunc = self.ufunc
        sig = self.gufunc_builder.signature
        inp_ndims, out_ndims = self.expected_ndims()
        ndims = inp_ndims + out_ndims

        assert len(argtys), len(ndims)
        for idx, arg in enumerate(argtys):
            if isinstance(arg, types.Array) and arg.ndim < ndims[idx]:
                kind = "Input" if idx < len(inp_ndims) else "Output"
                i = idx if idx < len(inp_ndims) else idx - len(inp_ndims)
                msg = (
                    f"{self.__name__}: {kind} operand {i} does not have "
                    f"enough dimensions (has {arg.ndim}, gufunc core with "
                    f"signature {sig} requires {ndims[idx]})")
                raise errors.TypingError(msg)

        _handle_inputs_result = npydecl.Numpy_rules_ufunc._handle_inputs(
            ufunc, argtys, kws)
        ewise_types, _, _, _ = _handle_inputs_result
        sig, _ = self.find_ewise_function(ewise_types)

        if sig is None:
            # Matching element-wise signature was not found; must
            # compile.
            if self._frozen:
                msg = f"cannot call {self} with types {argtys}"
                raise errors.TypingError(msg)
            self._compile_for_argtys(ewise_types)
            # double check to ensure there is a match
            sig, _ = self.find_ewise_function(ewise_types)
            if sig == (None, None):
                msg = f"Fail to compile {self.__name__} with types {argtys}"
                raise errors.TypingError(msg)

            assert sig is not None

        return signature(types.none, *argtys)

        Implement AbstractTemplate.generic() for the typing class
        built by gufunc._install_type().

        Return the call-site signature after either validating the
        element-wise signature or compiling for it.
        
numba/np/ufunc/gufunc.py