Trying to be just ducky...

  class X
    def to_proc
      self
    end
    def call
      "x"
    end
  end

  x = X.new

  def y( &b )
    b.call
  end

  y(&x)

TypeError: X#to_proc should return Proc
        from (irb):14

Why isn't it enough that it x responds to #call? 

T.