1: string cat is an old and reliable horsehide drum. I've been doing C programming recently, where you can concat two literal strings by having no other language tokens between them. Really. That's the real basis for repeating the suggestion of juxtaposition as a string joining operator. Syntactic arguments can all be deflated by retreating what gets recognized as a string juxtaposition to the point where it is clear that other things are happenind when other things are meant to happen. Besides, there's always join('',...).
2: deprecating bitwise ops. I've also been working with C++ recently where the bitwise ops, particularly shift-left, were completely overrun and are rarely missed. Multiple dispatch means the same syntax can mean completely different things. A more perlish solution to the situation might be, since bitwise ops are used rarely, to explicitly bring them in with a pragma. { use bitwiseops; ... } 3: I propose "means" as a postfix macro indicator. Macros are not allowed to alter the blocking structure, theymust be block-sane (like Lisp, unlike C). Tokens on both sides are the pieces that get replaced. Tokens and other syntax on the left that does not appear on the right is the pattern that will get matched to invoke the macro. The right hand side guides the rewriting. No reserved begin and end markers are required because of the blocking sanity requirement. For example for( initialize ; test ; increment ) body means {initialize ; while (test) {body ; increment }} ; thanks -- David Nicol, independent consultant and contractor 312 587 2868 "For every old blackboard there are now hundreds of new electronic computers"