Consider the following code:

     def example(required, optional = 10)
     end

     method(:example).parameters

On all Ruby implementations this works as expected and results in the
following:

     [[:req, :required], [:opt, :optional]]

The problem, at least with MRI, is that the moment you do something
similar with methods that are written in C all meaningful information is
lost:

     String.instance_method(:gsub).parameters # => [[:rest]]

This is false since gsub has at least 1 required argument. This happens
with a lot of methods (if not all) in MRI that are implemented in C.
Jruby is also affected by this (at least with the above example).
Rubinius is thus far the only implementation that gets this right that I
know of.

In hindsight, I probably should've made the above clear from the start.

Yorick