public Collection operands() {
			return new AbstractCollection() {
				public int size() {
					return cfg.preds(block).size();
				}

				public boolean contains(final Object obj) {
					if (obj == null) {
						return operands.size() != cfg.preds(block).size();
					}

					return operands.containsValue(obj);
				}

				public Iterator iterator() {
					final Iterator iter = cfg.preds(block).iterator();

					return new Iterator() {
						public boolean hasNext() {
							return iter.hasNext();
						}

						public Object next() {
							final Block block = (Block) iter.next();
							return operandAt(block);
						}

						public void remove() {
							throw new UnsupportedOperationException();
						}
					};
				}
			};
		}