anchor.diff:    '(integer 0 #x10FFFF))
   
   
  -(defparameter +named-char-map+
  -  (loop :for (name . code) :in '(("Backspace" . 8)
  -                                 ("Tab" . 9)
  -                                 ;; If #\Linefeed and #\Newline are
  -                                 ;; different characters code-point 10
  -                                 ;; should map to #\Linefeed.
  -                                 ("Linefeed" . 10)
  -                                 ("Newline" . 10)
  -                                 ("Page" . 12)
  -                                 ("Return" . 13)
  -                                 ("Space" . 32)
  -                                 ("Rubout" . 127))
  -        :for char := (name-char name)
  -        :when char
  -          :collect (cons char code)))
  +(eval-when (:compile-toplevel :load-toplevel :execute)
  +  (defparameter +semi-standard-char-name-map+
  +    (loop :for (name . code) :in '(("Backspace" . 8)
  +                                   ("Tab" . 9)
  +                                   ("Linefeed" . 10)
  +                                   ("Page" . 12)
  +                                   ("Return" . 13)
  +                                   ("Space" . 32)
  +                                   ("Rubout" . 127))
  +          :for char := (name-char name)
  +          :when char
  +            :collect (cons char code))))
   
   
  -(deftype semi+-standard-char ()
  -  `(member ,@(mapcar #'car +named-char-map+)))
  +(deftype semi-standard-char ()
  +  `(member ,@(mapcar #'car +semi-standard-char-name-map+)))
   
   
   (defstruct (standard-code-point
  
positive.code:   (typep object 'code-point))
  
  
  (defparameter +graphic-standard-chars+
    "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~")
  
  (defparameter +map-code-point-int-to-char+
    (coerce
     (loop :for code-point-int :from 0 :to 127
           :for char := (if (<= 33 code-point-int 126)
                            (char +graphic-standard-chars+ (- code-point-int 33))
                            (car (find code-point-int +named-char-map+ :key #'cdr)))
           :collect char)
     'vector))
  
  
  (defparameter +map-char-code-to-code-point-int+
    (map 'vector (lambda (char)
                   (and char (char-code char)))
         +map-code-point-int-to-char+))
  
  
  (defun code-point-int (object)
  
negative.code:     code-point-int
      standard-code-point
      standard-char
      semi-standard-char
      (satisfies generic-code-point-int)))
  
  
  