>>>>> "H" == Hugh Sasse Staff Elec Eng <hgs / dmu.ac.uk> writes: H> The second parameter is supposed to be optional. How does ruby determine H> that the second parameter has been missed out, but not the third (limit)? If you have only 2 parameters and the second is a FIXNUM then it's the limit. H> If the limit is negative, the depth is not checked. Presumably the H> limit is not ignored -- the only difference is the generation of an error H> message. Is that right? I mean, a negative limit doesn't mean "keep H> going down till you have the whole object", for example? ruby decrement the limit parameter and only check if this value is null to stop the dump. With a negative limit (the default) it dump the whole object. Guy Decoux p.s.: it's best to read the source for this sort of information.