anchor.diff:    point)
   
   (defun move-point (point new-point)
  +  @lang(:jp "`point`を`new-point`の位置に移動します。")
     (%move-to-position point
                        (point-line new-point)
                        (point-charpos new-point)))
   
   (defun line-start (point)
  +  @lang(:jp "`point`を行頭に移動します。")
     (setf (point-charpos point) 0)
     point)
   
   (defun line-end (point)
  +  @lang(:jp "`point`を行末に移動します。")
     (setf (point-charpos point)
           (line-length (point-line point)))
     point)
   
   (defun buffer-start (point)
  +  @lang(:jp "`point`をバッファの最初の位置に移動します。")
     (move-point point (buffers-start (point-buffer point))))
   
   (defun buffer-end (point)
  +  @lang(:jp "`point`をバッファの最後の位置に移動します。")
     (move-point point (buffers-end (point-buffer point))))
   
   (defun line-offset (point n &optional (charpos 0))
  +  @lang(:jp "`point`を`n`が正の数なら下に、負の数なら上に行を移動し、移動後の`point`を返します。
  +`n`行先に行が無ければ`point`の位置はそのままでNILを返します。
  +`charpos`は移動後の行頭からのオフセットです。
  +")
     (cond
       ((plusp n)
        (do ((n n (1- n))
  
positive.code:           move-to-line))
  
  (defun buffers-start (buffer)
    (buffer-start-point buffer))
  
  (defun buffers-end (buffer)
    (buffer-end-point buffer))
  
  (defun first-line-p (point)
    (null (line-prev (point-line point))))
  
  (defun last-line-p (point)
    (null (line-next (point-line point))))
  
  (defun start-line-p (point)
    (zerop (point-charpos point)))
  
  (defun end-line-p (point)
    (= (point-charpos point)
       (line-length (point-line point))))
  
  (defun start-buffer-p (point)
    (and (first-line-p point)
         (start-line-p point)))
  
  (defun end-buffer-p (point)
    (and (last-line-p point)
         (end-line-p point)))
  
  (defun same-line-p (point1 point2)
    (assert (eq (point-buffer point1)
                (point-buffer point2)))
    (eq (point-line point1) (point-line point2)))
  
  (defun line-string (point)
    (line-str (point-line point)))
  
  (defun %move-to-position (point line charpos)
  
negative.code:                        point)))
  
  (defun character-at (point &optional (offset 0))
    @lang(:jp "`point`から`offset`ずらした位置の文字を返します。
  バッファの範囲外ならNILを返します。")
    (%character-offset point offset
                       (lambda (line charpos)
                         (line-char line charpos))
  