public final <S extends T> Wrapper<S> wrap(@Nullable S reference) {
    return new Wrapper<S>(this, reference);
  }
public final <S extends T> Wrapper<S> wrap(@Nullable S reference) {
    return new Wrapper<S>(this, reference);
  }
public final < S extends T > Wrapper < S > wrap ( @ Nullable S reference ) { return new Wrapper < S > ( this , reference ) ; }
Returns a wrapper of {@code reference} that implements {@link Wrapper#equals(Object)
Object.equals()} such that {@code wrap(a).equals(wrap(b))} if and only if {@code equivalent(a,
b)}.

@since 10.0
Returns a wrapper of { @code reference } that implements { @link Wrapper#equals ( Object ) Object . equals () } such that { @code wrap ( a ) . equals ( wrap ( b )) } if and only if { @code equivalent ( a b ) } .