(define gl-loop
(lambda (time delta-t)
(let ((late-by (- (now) time))
(next-frame-time (+ time (* *second* delta-t))))
(if (> late-by 0)
(print "Late by " (* 1.0 (/ late-by *second*)) "seconds\n")
(gl_draw))
(callback (* 0.9 next-frame-time)
'gl-loop
next-frame-time
delta-t))))