An inconsistency in the docs for Proc#arity ? Here's what ri says:
arguments. A +proc+ with no argument declarations returns -1, as it
can accept (and ignore) an arbitrary number of parameters.
Proc.new {}.arity #=> 0
$ ruby -v
ruby 1.9.0 (2004-11-08) [i686-linux]