anchor.diff:            (make-marker buffer (make-point 1 0)))
       window))
   
  -(defun window-buffer (window)
  -  (%window-buffer window))
  -
  -(defun (setf window-buffer) (buffer window)
  +(defun window-buffer (&optional (window (current-window)))
  +  (window-%buffer window))
  +
  +(defun (setf window-buffer) (buffer &optional (window (current-window)))
     (screen-modify (window-screen window))
  -  (setf (%window-buffer window) buffer))
  +  (setf (window-%buffer window) buffer))
   
   (defun window-point (&optional (window (current-window)))
     (marker-point (window-point-marker window)))
  
positive.code:                           :y y
                            :width width
                            :height height
                            :buffer buffer
                            :screen (make-screen x y width height t)
                            :vtop-linum 1
                            :vtop-charpos 0)))
  
negative.code: 
  (defvar *current-window*)
  
  (define-class window () (current-window)
    x
    y
    width
    height
    %buffer
    screen
    vtop-linum
    vtop-charpos
    point-marker
    delete-hook
    parameters)
  
  (defun window-p (x)
    (typep x 'window))
  