From: Tim Connor Date: 2008-02-01T04:25:15+09:00 Subject: Gedankenexperiment on method duck type safety *braces for the flames to follow* I had a strange idea this morning, namely, how would I merge the idea of the contractual nature of static type safety, with the flexibility of duck-typing. I know, it's a hot button, and I've read various other threads that come close, but don't quite address it the same way. And I am not seriously proposing this as a "good idea" or anything. I was just thinking "hmm, is there any way to get ducktype safety, without manually throwing ParameterErrors in the header of the method if something fails a responds_to". Yes, there are times you want more complex handling if something doesn't quack, but sometimes you do want to enforce that, and right now it is just a bunch of extra ifs and unlesses. And I know this doesn't fit with he already complex enough method declarations in ruby. It's just faux ruby style, because that is my favorite dynamic language. So, without further prevarication, here is the aforementioned abomination, for either discussion sake, or pointing and laughing, whichever floats your boat: def foo(bar.is_? Array, !bar.is_empty?, baz.responds_to :webbed_feet)