Hi,

I would like to hear your opinion about an inconsistency I recently 
encountered. If you instantiate a subclass of Array, you will get an 
object of this class:

class MyArray < Array
end

MyArray.new.class #=> MyArray

However, Proc seems to behave differently. Instantiating a subclass will 
return an instance of Proc instead of an instance of the subclass.

class MyProc < Proc
end

MyProc.new {}.class #=> Proc

This looks pretty strange to me. What is the intention behind that?

Best regards,
Tilman