Daniel Carrera wrote:

> Since 'foo' was defined before 'function' and both 'function' and 'foo' 
> are in the same scope (I think) shouldn't 'function' see 'foo'?

You can do this in 1.7:

module M
   foo = "bar"
   define_method :function do
     puts foo
   end
end
include M

function      # prints: bar