anchor.diff:    )
   
   (defmethod to-lower-case ((this -string-proto))
  -  )
  +  (!string (string-downcase (slot-value this '-string-data))))
   
   (defmethod to-string ((this -string-proto))
  -  )
  +  this)
   
   (defmethod to-upper-case ((this -string-proto))
  -  )
  +  (!string (string-upcase (slot-value this '-string-data))))
   
   (defmethod trim ((this -string-proto))
  -  )
  +  (let ((this-str (slot-value this '-string-data)))
  +    (!string (string-trim '(#\Space #\Return #\Newline #\LINE_SEPARATOR
  +			    #\PARAGRAPH_SEPARATOR) this-str))))
   
   (defmethod value-of ((this -string-proto))
  -  )
  +  this)
   
   (defmethod iterator ((this -string-proto))
     )
  
positive.code: 	      ;; 10FFFF is 1114111
  	      (<= 0 next-cp 1114111))
  	 ;; Range error.
  	 (error "")
         do (setf (aref out i) (UTF16Encoding next-cp)))
      (!string out))
  
  
negative.code:      (-to-string (-to-primitive arg :hint 'string)))))
  
  (defun -string (&optional value)
    (let ((s (if value
  	       (if (eql (-type value 'symbol-type)
  			(property-value (cdr (assoc 'to-string-tag (fetch-properties value))))
  			(-to-string value)))
  	       "")))
      (make-instance '-string-proto :-string-data s)))
  
  