;; macro to generate boilerplate functions to get/set environment vars
;; attempt to remove 'globals' from source code

(define-syntax env-accessor
  (syntax-rules ()
    ((_ name val)
     (let ((env-var (symbol->string (symbol-append '+ name '+)))
           (setter (symbol-append 'set-env- name))
           (getter (symbol-append 'get-env- name)))
       `(begin (define (,setter v) (setenv ,env-var v))
               (,setter ,env-var ,val)
               (define (,getter) (getenv ,env-var)))))))
               
(env-accessor 'scheme-prog "guile")