public List leaves() {
			Assert.isTrue(leaves != null);

			final Iterator iter = leaves.iterator();

			while (iter.hasNext()) {
				final Expr e = (Expr) iter.next();
				Assert.isTrue((e instanceof VarExpr)
						|| (e instanceof ConstantExpr), "not a leaf: " + e);
			}

			return leaves;
		}