syntax-browser.ss
(module syntax-browser mzscheme
  (require (lib "class.ss")
           (lib "mred.ss" "mred")
           "private/widget.ss")
  (provide browse-syntax
           browse-syntaxes)

  ;; browse-syntax : syntax -> void
  (define (browse-syntax stx)
    (browse-syntaxes (list stx)))

  ;; browse-syntaxes : (list-of syntax) -> void
  (define (browse-syntaxes stxs)
    (let ((w (make-syntax-browser)))
      (for-each (lambda (stx) (send w add-syntax stx))
                stxs)))

  ;; make-syntax-browser : -> syntax-widget%
  (define (make-syntax-browser)
    (let* ([f (new frame% (label "Syntax Browser") (width 600) (height 400))]
           [w (new syntax-widget% (parent f))])
      (send f show #t)
      w))
  
  )