Make MATCHING agree with MATCH[F][-CASE] about the conditions of failure
Fri Jan 15 07:59:02 UTC 2010 pix@kepibu.org
* Make MATCHING agree with MATCH[F][-CASE] about the conditions of failure
Rather than skipping to the next clause on any error, UNIFICATION-FAILUREs--and
/only/ UNIFICATION-FAILUREs--skip to the next clause.
hunk ./match-block.lisp 170
- (unify* ,template ,object ,substitution))[_^M_][_$_]
+ (unify** ,template ,object ,substitution))[_^M_][_$_]
hunk ./unifier.lisp 862
+(defun unify** (a b &optional (env (make-empty-environment)))
+ (handler-case
+ (unify a b env)
+ (unification-failure (c) (values nil c))))
+