咳といいます。

matz> |[ruby-dev:21590]のextendの件はmarshal.cで気を使ってくれると
matz> |良いように思うけど、どうなのかしら。
matz> 
matz> 具体的にはどういうアクションが期待されているんでしょう。きち
matz> んと定義しようとするととたんに難しいように思います。

えっと、s_dumpの時みたいにこんな感じなのを思ってました。

--- marshal.c~  Fri Oct 10 02:45:52 2003
+++ marshal.c   Tue Oct 14 08:55:28 2003
@@ -483,8 +483,7 @@
            VALUE v;
 
            v = rb_funcall(obj, s_mdump, 0, 0);
-           w_byte(TYPE_USRMARSHAL, arg);
-           w_unique(rb_class2name(CLASS_OF(obj)), arg);
+           w_class(TYPE_USRMARSHAL, obj, arg);
            w_object(v, arg, limit);
            if (ivtbl) w_ivar(0, &c_arg);
            return;



でも、復元する時は、r_object0()してからrb_extend_object()するので
(つまり、オブジェクトが復元されてからextendされるので)
marshal_loadを持つモジュールをextendしても呼んでもらえないんですね。

      case TYPE_EXTENDED:
	{
	    VALUE m = path2module(r_unique(arg));

	    v = r_object0(arg, 0, 0);
	    rb_extend_object(v, m);
	}
	break;


残念