;;; along with this program; if not, write to the Free Software Foundation,
;;; Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-(defpackage #:mdw.anaphora
+(defpackage #:anaphora
(:use #:common-lisp)
(:export #:it
#:aif #:aif2 #:awhen #:awhen2
#:aand #:awhile #:asetf #:acond))
-(in-package #:mdw.anaphora)
+(in-package #:anaphora)
(defmacro aif (cond then &optional else)
"Bind `it' to result of COND when evaluating THEN or ELSE."
`(let ((it ,cond))
(if it ,then ,@(and else (list else)))))
+
(defmacro aif2 (cond then &optional else)
"Bind `it' to first value of COND; switch on second."
(let ((tmp (gensym)))
"Bind `it' to result of COND when evaluating BODY."
`(let ((it ,cond))
(when it ,@body)))
+
(defmacro awhen2 (cond &body body)
"Bind `it' to first value of COND; switch on second."
(let ((tmp (gensym)))
(defmacro asetf (&rest pairs &environment env)
"Set PLACE to value of FORM; in FORM, `it' is bound to current value of
-PLACE."
+ PLACE."
(labels ((foo (pairs)
(when pairs
(let ((place (car pairs))
(defmacro acond (&rest clauses)
"Like `cond', but in each clause the consequent has `it' bound to the value
-of its guard."
+ of its guard."
(labels ((foo (clauses)
(when clauses
(let ((tmp (gensym))