'Returns (dtype numbers, function ptr, EnvironmentObject)'

def build(self, cres):

    signature = cres.signature
    with compiler.lock_compiler:
        (ptr, env, wrapper_name) = build_gufunc_wrapper(self.py_func, cres, self.sin, self.sout, cache=self.cache)
    dtypenums = []
    for a in signature.args:
        if isinstance(a, types.Array):
            ty = a.dtype
        else:
            ty = a
        dtypenums.append(as_dtype(ty).num)
    return (dtypenums, ptr, env)
