Array.new の話で思い出したんですが、Hash#fetch に第2引数とブロックを両
方与えた場合、

% ruby -ve 'p({0=>1}.fetch(0, 2) {})'
ruby 1.8.1 (2003-11-05) [i686-linux]
1
% ruby -ve 'p({0=>1}.fetch(3, 2) {})'
ruby 1.8.1 (2003-11-05) [i686-linux]
-e:1:in `fetch': wrong number of arguments (ArgumentError)
        from -e:1

というように、default が必要になった時だけエラーになるのは意図された挙
動なんでしょうか?
-- 
[田中 哲][たなか あきら][Tanaka Akira]