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]