ふと気がついたのですが、

% ruby -e 't = Time.new
def t.m() end
p t.m
t2 = Marshal.load(Marshal.dump(t))
p t2.m
'
nil
-e:5: undefined method `m' for Fri Jan 16 02:21:00 JST 2004:Time (NoMethodError)

というように、Time のインスタンスに特異メソッドをつけても marshal でき
るのは、

% ruby -e 't = Object.new
def t.m() end
p t.m
t2 = Marshal.load(Marshal.dump(t))
p t2.m
'
nil
-e:4:in `dump': singleton can't be dumped (TypeError)
        from -e:4

というように Object のでは特異メソッドをつけると marshal できないとい
うのと一貫してないんじゃないでしょうか。
-- 
[田中 哲][たなか あきら][Tanaka Akira]