=begin
It seems to me that the main question is if to allow new methods that act like (({instance_eval})), or call it under the hood. The advantage in my opinion is the possibility to use (({self})), instead of choosing and declaring a local variable like in:
=begin
I think i've understood the concern of ((nobu)): object's private methods will be accessible from the block. This is not what i wanted. Sorry, i'll need to think more about my proposal. Maybe it is not good and (({tap})) is enough.
Here is why i am thinking about this: i want to be able to alter an object by calling methods on it, instead of passing the object as an argument (like in (({each_with_object}))).
=end
"Tap" just sounded strange to me in this use case. I wanted something like (({instance_eval})) that (1) returns self and (2) can only call public methods.
((rosenfeld)), what did you mean by "won't be suitable for nested tweak calls"?
=end