咳といいます。

> |その場合、Hash#eachの内部でしているであろう yield([:key, :value]) は
> |どうなるんでしたっけ?
> | 
> |{ 'key'=>'value' }.each do |k, v|
> |   assert_equal(['key', 'value'], k)
> |   assert_equal(nil, v)
> |end
> |
> |ですか? 
> |
> |それとも次のようになりますか?
> |
> |{ 'key'=>'value' }.each do |k, v|
> |   assert_equal('key', k)
> |   assert_equal('value', v)
> |end
> 
> 後者です。ここが変わると大混乱になります。
> 遠い将来は前者のようになるかもしれませんが。

あれれ? 

dRubyではHashの要素がDRbUndumpedでなくとも、eachが
うまくいかないようです。

Hash#eachなどをProc#callで再現するには、どうしたらいいんでしたっけ?

rb_hash_each()とeach_i()では、次のようなことをしてますよね。

  assoc = Array.new(:key, :value)
  yield(assoc)

rb_yield()とrb_yield_values()ってなにが違うかというと、
rb_yield_0()の引数avalueが違うのかな。avalueがなにか影響するのかしら。

もしかしてブロックのパラメータの書き方によって渡る値がかわる??

arityなどを使ってどうにかごまかすのかなあ。