前田です。

前から、

alias __print, print

などとした時の名前(__print)の衝突の問題が気になっていた
のですが、Lispのmake-symbolのようなものを用意することで
解決できるように思います。

class Foo
  ...
  # Symbol.newはID(Integer)を返す。
  PRINT = Symbol.new("print")
  alias_method PRINT, :print

  def print
    ...
    send(PRINT, ...)
    ...
  end
end

PRINT.id2nameは"print"になるが、"print".internはけっして
PRINTにならないようにするというのがミソです。
おまけにRubyの定数のスコープは静的に決まるので、サブクラ
スでPRINTを定義されても大丈夫です。
# ちなみにGNU Emacs 拡張ガイドを読んでて思いつきました:-)

問題はsendを使うためメソッド呼び出しが一回増えることです:-(

-- 
前田 修吾