@Simon: why safer? Rather, what is unsafe about calling symbol within the Expr constructor?
Also, this case is a pretty cool illustration of the usefulness of generated functions. I've consistently found myself wishing I could somehow get a macro to "dispatch" on the types of it's arguments.
