From: mikeharder@... Date: 2006-10-31T18:20:07+09:00 Subject: Duck typing and the Standard Library I'm new to Ruby, so please excuse any ignorance on my part. I read the following article about Ruby and "duck typing": http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/100511 I got the impression that duck typing is the "right" way to do things in Ruby. However, the Ruby Standard Library itself doesn't seem to use duck typing. Consider the following example: irb(main):001:0> require 'set' => true irb(main):002:0> s = Set.new => # irb(main):003:0> s.superset? 0 ArgumentError: value must be a set It seems like the "superset?" method explicitly checks that its parameter is a set. This is approach #1 in the "duck typing" article above, which the article claims is not "the Ruby way". So, what gives? If it's wrong to "try to make Ruby do Static Typing" (as the article says), then why does the Ruby Standard Library do it? -Mike