class WeakValue extends WeakReference<T> implements Weak<T> {

    @Override
    public boolean equals(Object other) {
        if (this == other) {
            return true;
        }

        if (!(other instanceof Weak<?>)) {
            return false;
        }

        return Objects.equals(get(), ((Weak<?>) other).or(null));
    }

      WeakValue(T referent);

}