How do `Proc` and `lambda` differ in argument binding at the VM level, and what does this snippet print?pr = proc { |a, b| [a, b] } la = lambda { |a, b| [a, b] } p pr.call(1) p(begin; la.call(1); rescue ArgumentError; :err; end)