@Override public T valueOf(Pair<?, T> pair) { return pair.getTwo(); }
@Override public Pair<T, S> valueOf(Pair<S, T> pair) { return pair.swap(); }
@Override public T valueOf(Pair<T, ?> pair) { return pair.getOne(); }