anchor.diff:        "Reflected light on a sail app"
         (add-target (add-reflection (absorb))))
   
  -    (defun add-animation (app)
  -      (with-slots (toggle-pause pause) app
  -	(setf
  -	 pause false
  -	 toggle-pause
  -	 (lambda (e)
  -	   (let ((pause-html ($ "#pause")))
  -	     (if pause
  -		 (progn
  -		   (setf pause false)
  -		   (setf (@ pause-html 0 inner-h-t-m-l) "Pause"))
  -		 (progn
  -		   (setf pause t)
  -		   (setf (@ pause-html 0 inner-h-t-m-l) "Continue")))))))
  -      app)
  -    
       (defun absorb-force ()
  -      (let ((app (add-animation (absorb)))
  +      (let ((app (absorb))
   	    (vel 0)
   	    (pos 0)
   	    (elapsed 0)
   	    (timefactor 10)
   	    (time false))
  -	(with-slots (sail pause scene mirror corners projection absorb-arrow controls render toggle-pause update animate init incidence update-tilt) app
  +	(with-slots (sail pause scene mirror corners projection absorb-arrow controls render toggle-pause update-anim animate init incidence update-tilt render) app
   	  (setf
  -	   update
  -	   (lambda ()
  -	     (let* ((accel (* 5d-5 (abs (cos (* incidence (/ pi 180))))))
  -		    (now ((@ (new (*date)) get-time)))
  -		    (dt (/ (* timefactor (- now (or time now))) 1000)))
  -	       (setf time now)
  -	       (incf elapsed dt)
  -	       (incf vel (* dt accel))
  -	       (incf pos (* dt vel))
  -	       (setf (@ sail position y) pos)
  -	       (setf (@ ($ "#accel") 0 inner-h-t-m-l) ((@ ((@ *math floor10) (* accel 1000) -4) to-string)))
  -	       (setf (@ ($ "#speed") 0 inner-h-t-m-l) ((@ ((@ *math floor10) (* vel 1000) -2) to-string)))
  -	       (setf (@ ($ "#distance") 0 inner-h-t-m-l) ((@ ((@ *math floor10) pos -3) to-string)))
  -	       (let* ((minutes (floor (/ elapsed 60)))
  -		      (seconds (floor (- elapsed (* minutes 60)))))
  -		 (setf (@ ($ "#elapsed") 0 inner-h-t-m-l)
  -		       (+ ((@ minutes to-string)) (if (> seconds 9) ":" ":0") ((@ seconds to-fixed))))))
  -	     ;; Move absorbed arrow
  -	     ((@ absorb-arrow position copy) (@ sail position))
  -	     ;; Update projection
  -	     ((@ scene remove) projection)
  -	     (setf projection (projection corners))
  -	     ((@ scene add) projection))
  -	   animate
  -	   (lambda ()
  -	     (request-animation-frame animate)
  -	     (unless pause
  -	       (when (> pos 100)
  -		 (funcall reset))
  -	       (funcall update))
  -	     (when pause (setf time false))
  -	     ((@ controls update))
  -	     (funcall update-tilt))
  -	   reset (lambda () (setf pos 0 vel 0 elapsed 0))
  +	   pause false
  +	   toggle-pause
  +	   (lambda (e)
  +	     (let ((pause-html ($ "#pause")))
  +	       (if pause
  +		   (progn
  +		     (setf pause false)
  +		     (setf (@ pause-html 0 inner-h-t-m-l) "Pause"))
  +		   (progn
  +		     (setf pause t)
  +		     (setf (@ pause-html 0 inner-h-t-m-l) "Continue")))))
   	   init
   	   (let ((init-super ((@ app superior) "init")))
   	     (lambda ()
  
positive.code: 	   (let ((absorbed-html (@ ($ "#absorbed") 0)))
  	     (when absorbed-html
  	       (setf (@ absorbed-html inner-h-t-m-l) ((@ absorbed to-string))))))
  	 update-tilt
  	 (lambda ()
  	   (funcall tilt-update-fn)
  	   (funcall render))
  	 ;; Tilt functions
  	 up (lambda ()
  	      ((@ sail rotate-z) (/ pi 36))
  
negative.code: 	     (setf (@ projection visible) bool
  		   (@ absorb-arrow visible) bool)
  	     (funcall visibility-super bool)))
  	 update-tilt
  	 (let ((tilt-super ((@ app superior) "updateTilt")))
  	   (lambda ()
  	     (funcall tilt-super)
  	     ;; Corners of the sail
  