@Override
	public boolean equals(final Object o) {
		if (!(o instanceof ANDORGraph<?, ?>))
			return false;
		final ANDORGraph<?, ?> andORGraph = (ANDORGraph<?, ?>) o;
		final boolean andNodesEquals = this.andNodeSet().equals(andORGraph.andNodeSet());
		final boolean orNodeEquals = this.orNodeSet().equals(andORGraph.orNodeSet());
		final boolean edgeEquals = this.g.edgeSet().equals(andORGraph.g.edgeSet());
		return andNodesEquals && orNodeEquals && edgeEquals;
	}