Broken record time:

The problem with all of these solutions is that they are discovered at
run-time.  I find it increasingly irritating when I have to debug
typing errors by running an application that takes some time to get to
the error.  Enough of those times, the error is a typing error, so that
I've been harping lately about wanting a duck-type checker hooked in to
"ruby -c".

-- SER