def NOT(fn):
    """ Reverse the effect of a chainable validator function """
    @chainable
    def validator(v):
        try:
            fn(v)
        except ValueError:
            return v
        raise ValueError('invalid')
    return validator