def addpattern(base_func):
    """Decorator to add a new case to a pattern-matching function, where the new case is checked last."""
    def pattern_adder(func):
        @_coconut.functools.wraps(func)
        @_coconut_tco
        def add_pattern_func(*args, **kwargs):
            try:
                return base_func(*args, **kwargs)
            except _coconut_MatchError:
                raise _coconut_tail_call(func, *args, **kwargs)
        return add_pattern_func
    return pattern_adder
def addpattern ( base_func ) : def pattern_adder ( func ) : @ _coconut . functools . wraps ( func ) @ _coconut_tco def add_pattern_func ( * args , ** kwargs ) : try : return base_func ( * args , ** kwargs ) except _coconut_MatchError : raise _coconut_tail_call ( func , * args , ** kwargs ) return add_pattern_func return pattern_adder
Decorator to add a new case to a pattern-matching function, where the new case is checked last.