anchor.diff:  
   (defun reset ()
     (dolist (slider (list *brightness* *contrast* *gamma*))
  -    (qset slider "value" 127)))
  +    (qset slider "value" 0)))
   
   (let ((pnt (qnew "QPainter")))
     (defun paint (ev)
  
positive.code:       "end")))
  
  (defun change (value)
    ;; we use QLET here to force immediate deletion of temporary images (memory usage)
    (qlet ((img1 (qfun "QImage" "changeBrightness" *image* (floor (/ (- (qget *brightness* "value") 127) 2))))
           (img2 (qfun "QImage" "changeContrast"   img1    (qget *contrast* "value")))
           (img3 (qfun "QImage" "changeGamma"      img2    (qget *gamma* "value"))))
      (setf *pixmap* (qfun "QPixmap" "fromImage" img3)))
    (qfun *display* "repaint"))
  
  (start)
  
negative.code:   (qfun *display* "setFixedSize" (qfun *image* "size"))
    (dolist (slider (list *brightness* *contrast* *gamma*))
      (x:do-with (qset slider)
        ("minimum" -100)
        ("maximum" 100)
        ("value" 0))
      (qconnect slider "valueChanged(int)" 'change))
    (qconnect *reset* "clicked()" 'reset)
    (qoverride *display* "paintEvent(QPaintEvent*)" 'paint)
  