I realized that I just can't ever remember the different proc types
behaviours. So I wrote a script to check them.
https://gist.github.com/1005840

My conclusion:
  proc: Avoid this, since its behaviour differs across commonly used
implementations.
  lambda: Use this if you want it to behave like a method.
  Proc.new: Use this if you want it to behave like a block.

Is that reasonable? Any thoughts or insights? Do you have a different set of
rules or a more elegant conclusion?