'Decorate an implementation of *func* for the given argument types.
*func* may be an actual global function object, or any
pseudo-function supported by Numba, such as "getitem".
The decorated implementation has the signature
(context, builder, sig, args).'

def lower(self, func, *argtys):

    def decorate(impl):
        self.functions.append((impl, func, argtys))
        return impl
    return decorate
