Eric, I feel like I keep repeating myself here. I have no problem with the behavior as it stands now. There is an error in the documentation. That is all. David Eric Hodel wrote: > On Jun 5, 2007, at 11:48, David Flanagan wrote: > >> Eric Hodel wrote: >>> A proc is more than just its body. >> >> I understand. My point is that the Proc.== documentation says: >> >> Return +true+ if _prc_ is the same object as _other_proc_, or if >> they are both procs with the same body. >> >> To me, this implies that you can use == to compare the body of two >> separate proc objects. I couldn't come up with any case where you >> could actually do this. Nobu pointed out that when two procs have >> empty bodies, == works for comparing them, but so far, there are no >> other cases in which the documentation matches the implementation. >> >> I suggest that the implementation is correct and the documentation is >> in error. > > Proc#== works no differently than Object#==. proc {} == proc {} due to > an implementation detail. To make this work the way you think it should > work you'd need to walk the ASTs and so-forth of each proc. > > Since we're talking about something implemented in C, I feel that "same" > means pointers, not walking ASTs. >