@Override
    public boolean equals(final Object o) {
      if (this == o) return true;
      if (o == null) return false;

      V v = get();
      //noinspection unchecked
      V thatV = ((ValueReference<K, V>)o).get();
      return v != null && v.equals(thatV);
    }
@Override
    public boolean equals(final Object o)