+ (let* ((c (char str i))
+ (match (assoc c repl-alist :test #'char=)))
+ (declare (character c))
+ (when match
+ (incf new-len (length (cdr match))))))
+ (let ((new-string (make-string new-len))
+ (i 0))
+ (declare (string new-string)
+ (fixnum i))
+ (dotimes (i orig-len)
+ (declare (fixnum i))
+ (let* ((c (char str i))
+ (match (assoc c repl-alist :test #'char=)))
+ (declare (character c))
+ (if match
+ (let ((subst (cdr match)))
+ (dotimes (j (length subst))
+ (setf (char new-string i) (char subst j))
+ (incf i)))
+ (progn
+ (setf (char new-string i) c)))))
+ new-string)))