>As I said, code that relies on the std Enumerable behavior
>might be affected if handed an instance that mixes in EA.
>I don't say it will but there's a chance because EA
>redefines methods from Enumerable.

Such an argument smakes dead against the whole concept of polymorphism
and duck-typing.

> What about my last question?  How many classes do you
> know that have method #each that accepts arguments?

That's a ridiculous question. The reason you don't have ANY #each
taking parameters is becuase it won't work with Enumerable!

This whole discussion is silly. If you really think this is "longer" or
"less readable"

  ObjectSpace.select(Class) { |c| c.name =~ /^S/ }

Than this:

  ObjectSpace.enum_for(:each_object, Class).select { |c| c.name =~ /^S/
}

Then by all means, type away.

T.