symbol.ss
(module symbol mzscheme
  
  (require
   (lib "string.ss" "srfi" "13")
   (file "base.ss")
   )
  
  (provide
   (all-defined)
   )
  
  ;; symbol-append : (U symbol string integer boolean) ... -> symbol
  (define (symbol-append . args)
    (string->symbol 
     (string-concatenate 
      (map (lambda (item)
             (cond
               [(symbol? item) (symbol->string item)]
               [(string? item) item]
               [(number? item) (number->string item)]
               [(boolean? item) (if item "true" "false")]
               [else
                (raise-exn/format exn:fail:unlib
                  "Expected (list-of (U symbol string number boolean)). Received: ~a" args)]))
           args))))
  
  )