Devin Mullins wrote:

> class Foo; def thing; nil end end
> f = Foo.new; f.thing            #=> nil
> m = f.method :thing; m.call     #=> nil
> class Foo; def thing; 5 end end
> f.thing    #=> 5
> m.call     #=> nil

I think what's going on here is that it's making a copy of the method
instead of just pointing a variable at it. Lisp does the same thing:

(defun foo () 'nil)
(foo) ;nil
(setf bar #'foo)
(funcall bar) ;nil
(defun foo () 5)
(foo) ;5
(funcall bar) ;nil