def tagfunc(nargs=None, ndefs=None, nouts=None):
    """
        decorate of tagged function
    """
    def wrapper(f):
        return wraps(f)(FunctionWithTag(f, nargs=nargs, nouts=nouts, ndefs=ndefs))

    return wrapper