But the solution isn't scalable in a multi-threaded program. 50 threads that want to call w/stdx would have to be serialized. And only because they share a temporary variable has to be global.
mzscheme solves this with thread-local variables.