to_procで生成したProcにブロックが渡されない?

p :select.to_proc.call([1,2,3]) {|x| x.odd? }
# => #<Enumerable::Enumerator:0x574cc>

な,なんだってー!

class Symbol
  def to_proc
    proc {|obj, *args, &block| obj.send(self, *args, &block) }
  end
end
p :select.to_proc.call([1,2,3]) {|x| x.odd? }
# => [1, 3]

ブロックがブロックを受け取れるようにはなったけど,他の部分がその変更についてきていない気がする.yieldもアレだし.