Damin M. Gonzlez wrote in post #1076192:
>  "Some objects cannot be dumped: if the objects to be dumped include
> bindings, procedure or method objects, instances of class IO, or
> singleton objects, or if you try to dump anonymous classes or modules, a
> TypeError will be raised."

Here are examples of each of these in turn, presented as a member of a vanilla Hash object. They all fail.

Marshal.dump("foo" => binding)
Marshal.dump("foo" => Proc.new { 0 })
Marshal.dump("foo" => method(:puts))
Marshal.dump("foo" => File.open("/etc/passwd"))

a = "bar"
def a.baz; 0; end
Marshal.dump("foo" =>a)

Marshal.dump("foo" => Class.new)
Marshal.dump("foo" => Module.new)

>  So obvious Foo is not a singleton object, is a class object. I've tried
> to Marshal this class in the common way and succed, no TypeError arised.
> But when I restore, no clue about his own instance variables.

Correct, for more info see http://www.ruby-forum.com/topic/4405722

> I wonder
> what does mean Dave when he say "anonymous classes or modules"...

A class which is not assigned to a constant.

# an anonymous class
k = Class.new
p k   # => #<Class:0x10640d5d8>

But there is special voodoo the first time you do assign it to a constant.

Foo = k
p k   # => Foo

The class "knows" that its name is Foo. Normally, objects don't know what variables and/or constants reference them.

>  I've opened a topic short time ago related with this, asking about
> marshaling classes and his class variables, I surrendered trying to save
> classes with his class variables but what about his own instance
> variables, It is not a common object?

It is, but this is a special case.

{"foo" => String, "bar" => Array}
is serialised as just references to the class named "String" and "Array"

If it worked the way you wanted, then instead of serializing the name it would have to serialize everything needed to reconstruct the classes "String" and "Array" - including the methods.

So what we gain is the ability to have objects which contain references to (named) classes, which is useful, without being able to serialize the classes themselves.