diff --git a/module/ice-9/match.upstream.scm b/module/ice-9/match.upstream.scm index b1fc371b8..f12981cb3 100644 --- a/module/ice-9/match.upstream.scm +++ b/module/ice-9/match.upstream.scm @@ -115,7 +115,7 @@ ;;> @example{(match 1 ((or x) x))} ;;> @example{(match 1 ((or x 2) x))} -;;> The @scheme{not} operator succeeds if the given pattern doesn't +;;> The @scheme{not} operator succeeds if none of the given patterns ;;> match. None of the identifiers used are available in the body. ;;> @example{(match 1 ((not 2) #t))} @@ -355,6 +355,8 @@ (match-extract-vars (or p ...) (match-gen-or v (p ...) g+s sk fk i) i ())) ((match-two v (not p) g+s (sk ...) fk i) (match-one v p g+s (match-drop-ids fk) (sk ... i) i)) + ((match-two v (not p ...) g+s (sk ...) fk i) + (match-two v (not (or p ...)) g+s (sk ...) fk i)) ((match-two v (get! getter) (g s) (sk ...) fk i) (let ((getter (lambda () g))) (sk ... i))) ((match-two v (set! setter) (g (s ...)) (sk ...) fk i)