[plt-scheme] (provide (all-defined)) and generated temporaries
It would be nice if the `(all-defined)' provide specifier didn't
provide bindings that were produced by `generate-temporaries', or else
if there were another provide specifier that acted this way. A silly
example:
(module dprintf mzscheme
(provide dprintf)
;; A version of printf that can be used in an internal-define
;; context (as well as top-level or module context):
(define-syntax (dprintf stx)
(syntax-case stx ()
((_ . args)
(with-syntax (((dummy) (generate-temporaries (syntax (_)))))
(syntax (define dummy (printf . args)))))))
)
(module use-dprintf mzscheme
(require "dprintf.scm")
(provide (all-defined))
(dprintf "ok~%")
)
Welcome to MzScheme version 204.7, Copyright (c) 1995-2003 PLT
> (require "use-dprintf.scm")
ok
> dprintf1
>
It seems wrong that generated symbols are leaking out-- maybe I'm
asking for trouble using `(provide (all-defined))', but it's there and
I'm lazy so I'm going to use it. :)
--dougo at ccs.neu.edu