きしもとです

パーサコンビネータを作っていて、作ろうとしてダメだったことなのですが、
ruby の文法では foo? のようなメソッドを作ったり呼んだりできませんが、
(define_method と send で作ったり呼んだりできることは確認しました)
これは、たとえば文法上衝突するなどの、理由があってのことなのでしょうか?

なお、作っていたパーサコンビネータでは opt というメソッド名にしました。