code: private Item addType(final Item item) {
          ++typeCount;
          Item result = new Item(typeCount, key);
          put(result);
          if (typeTable == null) {
              typeTable = new Item[16];
          }
          if (typeCount == typeTable.length) {
              Item[] newTable = new Item[2 * typeTable.length];
              System.arraycopy(typeTable, 0, newTable, 0, typeTable.length);
              typeTable = newTable;
          }
          typeTable[typeCount] = result;
          return result;
      }
docs: Adds the given Item to {@link #typeTable}.
  
  @param item
  the value to be added to the type table.
  @return the added Item, which a new Item instance with the same value as
  the given Item.