Hello

Procs seem to bind their arguments in an illogical way:
def foo
	yield 1,2,3
end
def bar 
	yield 1
end
foo { |o| p o } #=> [1, 2, 3]
bar { |o| p o } #=> 1
foo { |o,q| p o; p q } #=> 1, 2
bar { |o,q| p o; p q } #=> 1, nil


So if the proc takes 1 argument and there were multiple arguments
in the yield they are bound to an array but otherwise they are
bound normally.

- Einar Karttunen