;; let-optionals*

(define (make-counters . args)
  (let-optionals* args ((seed 0)
                        (step 1))
    (let ((x seed))
      (values (lambda ()
                (set! x (+ x step)))
              (lambda ()
                (set! x (- x step)))))))


(use srfi-8) ; define-values

(define-values (inc dec)
  (make-counters))

(inc)
(dec)

(define-values (dec2 inc2)
  (make-counters 100 -2))

(inc2)
(dec2)