On Thu, Nov 13, 2008 at 03:46:58AM +0900, Charles Oliver Nutter wrote:
> At that point I think we gain very little over arrays of arrays, since  
> we have to walk Parameters of Parameter(s) in almost exactly the same 
> way...

That depends on what what you want to do with the structure.

In:

  class Foo
    define_method(:foo) { |a, (b, c), d| p a, b, c, d }
  end

I can still find out whether the 3rd parameter (d) is required with:

  params = Foo.method(:foo).parameters
  p params[2].required?

vs:

  p params[2][0] == :req

or I can find out if it is optional with:

  p params[2].optional?

vs:

  p params[2][0] != :req

Paul