@Override
	@SuppressWarnings("unchecked")
	public boolean equals(final Object p) {
		if (p instanceof Pair) {
			final Pair<T, U> other = (Pair<T, U>) p;
			return ((this.e1 == null && other.e1 == null) || (other.e1.equals(this.e1)))
					&& ((this.e2 == null && other.e2 == null) || (other.e2.equals(this.e2)));
		}
		return false;
	}