Hi,

I just wanted to tell you that if you do

  val.dup rescue val 

somewhere in your program, you should probably switch to:

  case val
  when Fixnum, nil, true, false
    # non dup-able
    val
  else
    val.dup rescue val
  end

which is much faster if you have lots of non-dupable values. 

Regards,

  Michael