(define (indirector elements)
  (define (index n) (nth n elements))
  (mapc (lambda (x) t) elements)
  (define index-copy index)
  (lambda () index-copy))

(setq a (indirector '(1 2 3)))
(setq a1 (a))

(setq b (indirector '(4 5 6)))
(setq b1 (b))

(setq a2 (a))

(princ (concat "a1 -> " (prin1-to-string (a1 1)) "\n"))
(princ (concat "a2 -> " (prin1-to-string (a2 1)) "\n"))
(princ (concat "b1 -> " (prin1-to-string (b1 1)) "\n"))
