def fail(item, fail_type=None, max_tries=None, ttl=None):
    '''Fail a work item, either temporarily or permanently'''
    # default to fail_perm
    if fail_type is not None and fail_type == _c.FSQ_FAIL_TMP:
        return fail_tmp(item, max_tries=max_tries, ttl=ttl)
    return fail_perm(item)