(defmacro if* (opt-var+cond                then &rest else)   (let* ((have-var (cdr opt-var+cond))          (var           (if have-var               (car opt-var+cond)             'it))          (cond           (if have-var               (cadr opt-var+cond)             (car opt-var+cond))))     `(let ((,var ,cond))        (if ,var ,then ,@else))))