Perhaps go the other way? (future/e <e> ...) ==> (future (lambda () <e> ...)) (thread/e <e> ...) ==> (thread (lambda () <e> ...)) (delay/e <e> ...) ==> (delay (lambda () <e> ...))
and so on? That is, accept defeat on the primary names, but occupy the /e namespace for the macro versions, and whatever the suffix is, keep it really short. There is precedent for offering macro/function pairs in let/cc and call/cc. (Yes, a programmer could do it themselves, but it's annoying to have to write these over and over, and code is more readable if everyone can agree on names -- my future/e may be your future-e may be someone else's future/w/expr.) Shriram _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

