Interning Example: an Interning cons
OpenList cons(Object F, OpenList R)
  {
  OpenList found = find(F, R);
  if( found == null )
    {
    found = new OpenList(new Cell(F, R));
    remember(found);
    }
  return found;
  }
find and remember must be implemented.
Clearly, sharing is intended.