anchor.diff:  
   
   (defun test ()
  +  (test/string-designator)
  +  (test/character-designator)
     (test/concatenate-strings)
     (test/implode-explode))
   
  +(test)
  +
   
   ;;;; THE END ;;;;
  
positive.code: ;;;;AUTHORS
  ;;;;    <PJB> Pascal J. Bourguignon <pjb@informatimago.com>
  ;;;;MODIFICATIONS
  ;;;;    2012-08-10 <PJB> Improved split-string and string-justify-left.
  ;;;;    2006-10-20 <PJB> Moved displaced-vector to
  ;;;;                     com.informatimago.common-lisp.cesarum.array.
  
negative.code:   (assert (equal "abcdef" (concatenate-strings '(#\a #\b #\c "def"))))
    :succes)
  
  
  
  
  
  
  (defun explode-string (character-designators &optional (result-type 'list))
    "
  RETURN:         A new sequence of type RESULT-TYPE, containing the
                  characters in the sequence CHARACTER-DESIGNATORS.
  RESULT-TYPE:    A sequence type accepted by MAP.  Default: LIST.
  "
    (check-type character-designators sequence)
    (map result-type (function character) character-designators))
  
  
  (defun implode-string (character-designators)
    "
  RETURN: A new string containing the characters in the sequence CHARACTER-DESIGNATORS.
  NOTE:   (implode-string cds) == (explode-string cds 'string)
  "
    (check-type character-designators sequence)
    (map 'string (function character) character-designators))
  
  
  (define-compiler-macro implode-string (&whole form  character-designators)
    "
  RETURN:  An optimized form for compiled code.
  NOTE:    Unfortunately some implementations don't take into account
           compiler-macros even when compiling.
  "
    (declare (ignorable form))
    (with-gensyms (seq)
      `(let ((,seq ,character-designators))
         (typecase ,seq
           (string     (copy-seq ,seq))
           (list       (do ((result (make-string (length ,seq)))
                            (i 0 (1+ i))
                            (sequ ,seq  (cdr sequ)))
                           ((null sequ) result)
                         (setf (char result i) (character (car sequ)))))
           (otherwise  (do ((result (make-string (length ,seq)))
                            (i 0 (1+ i))
                            (max (length ,seq)))
                           ((>= i max) result)
                         (setf (char result i) (character (aref ,seq i)))))) )))
  
  
  (defun test/implode-explode ()
  