Copying elements that are lists recursively
static Object copy(Object ob)
  {
  if( ob instanceof OpenList )
    {
    return copyOpenList((OpenList) ob);
    }
  else
    {
    return ob;
    }
  }
A non-list item will not be copied, but rather will be referenced as is.