> > f.instance_eval{bar} # Won't fail... !!!
>
> Okay. Now I got totally confused. What's the purpose of
> instance_eval?

Instance_eval evaluates the given block within the context of
the receiver. This means that bar is called from within the
context of f itself.

(You should have asked: "If we can do this, what's the purpose
of 'protected' or 'private'?"...)

gegroet,
Erik V. - http://www.erikveen.dds.nl/