Hi,

In message "Re: [ruby-core:41593] [ruby-trunk - Bug #5694][Open] Proc#arity doesn't take optional arguments into account."
    on Mon, 12 Dec 2011 02:06:26 +0900, Marc-Andre Lafortune <ruby-core / marc-andre.ca> writes:

|It is strictly superior because it is consistent with Method#arity and with Proc#arity for method converted to proc. Currently:
|
|    def Object.foo(a=42); end
|    foo = Object.method(:foo).to_proc
|    bar = ->(a=42){}
|    foo.class == bar.class # => true
|    foo.lambda? == bar.lambda? # => true
|    foo.arity == bar.arity # => false
|
|It is also consistent with the current official documentation.

This is a problem. We have to be consistent here.  Let us check.

|I think it is a clear defect as there is a contradiction with the official documentation.

Don't emphasize "official" too much.  Historically "official"
documentation has not been written by the original author (me) nor
implementer of the feature, so that it had often been written from
guessing from the code.