Thu Jan 21 01:56:47 UTC 2010 pix@kepibu.org * Rather than a new UNIFY** function, make UNIFY* work that way Let errors which are not UNIFICATION-FAILUREs find their way out of UNIFY*. diff -rN -u old-cl-unification-1/match-block.lisp new-cl-unification-1/match-block.lisp --- old-cl-unification-1/match-block.lisp 2013-07-26 01:08:55.000000000 +0000 +++ new-cl-unification-1/match-block.lisp 2013-07-26 01:08:55.000000000 +0000 @@ -167,7 +167,7 @@ (let ((template (%template-for-match template)) ) `((setf ,clause-var - (unify** ,template ,object ,substitution)) + (unify* ,template ,object ,substitution)) ,(%wrap-var-bindings template clause-var forms)) )) diff -rN -u old-cl-unification-1/unifier.lisp new-cl-unification-1/unifier.lisp --- old-cl-unification-1/unifier.lisp 2013-07-26 01:08:55.000000000 +0000 +++ new-cl-unification-1/unifier.lisp 2013-07-26 01:08:55.000000000 +0000 @@ -857,9 +857,6 @@ ;;; Utilities. (defun unify* (a b &optional (env (make-empty-environment))) - (ignore-errors (unify a b env))) - -(defun unify** (a b &optional (env (make-empty-environment))) (handler-case (unify a b env) (unification-failure (c) (values nil c))))