きしもとです [ruby-list:46422] から始まるスレッドで一旦却下された話で、 "?" というメソッドは、レシーバを省略した呼び出しで、リテラルや三項演算子と ぶつかるのでダメ、という話になったわけですが、 レシーバを省略しない呼び出しであれば、現在、obj.def とか obj.end とか obj.and とか、演算子やそのほかの構文と被ってる名前でも使えるわけですよね? そういうわけで、obj.? もあっていいんではないか、と改めて提案します。 誰がうれしいか、ということについてですが、パーサコンビネータで、 a a? b という構文規則をたとえば a >> a.opt >> b としていたものを、 a >> a.? >> b と、簡潔かつ直感的にわかりやすく書けるようになります。 リテラルや三項演算子は、def のあとや obj. のあとの文脈で、 def や end や and に比べて、特別でしょうか?