(define caller (foreign-safe-lambda* int ((scheme-object proc) (unsigned-int length)) " int i; for(i = 0; i < length; i++){ C_save(C_fix(i)); C_callback(proc,1); } C_return(0);" )) (define (poll-test items) (caller (lambda (i) (list-ref items i)) (length items))) (let ((items (list 1 2))) (let loop ((ignored (poll-test items))) (loop (poll-test items))))