> Therefore, Python requires you to rewrite the code in some other way > that makes your intentions more clear. For instance, why not use the > << operator instead?
Right, but you're guessing what the context is. Within a DSL it often makes a lot of sense to use operators for reasons that weren't originally intended. You even make the same case yourself indirectly. The same argument you make could be made to say that << should only operator on values that can be shifted. Now thankfully there is no way to test for that, so there is no restriction and, consequently, it is now widely accepted that no-one (even people arguing the case for constraints!) think it odd to use << for something other than its initial use. Obviously this kind of discussion has gone on since languages were first invented - it's the "how much rope" argument. So rather than continue down that road I would just like to say that this feels like an inconsistency. The other operators are *not* as restricted and this is making my life harder. It may sound crazy, but this may force me to use * and ** instead (the context is a language feature related to *args and **kargs, so the * and ** help convey the meaning). And they have a much much stronger meaning to users, which will make my DSL harder to understand. So in this case a blunt knife is making life harder. Andrew -- http://mail.python.org/mailman/listinfo/python-list