'Reduce the instance for pickling.  This will serialize
the original function as well the compilation options and
compiled signatures, but not the compiled code itself.'

def __reduce__(self):

    if self._can_compile:
        sigs = []
    else:
        sigs = [cr.signature for cr in self.overloads.values()]
    globs = self._compiler.get_globals_for_reduction()
    return (serialize._rebuild_reduction, (self.__class__, str(self._uuid), serialize._reduce_function(self.py_func, globs), self.locals, self.targetoptions, self._impl_kind, self._can_compile, sigs))
