@Override
	boolean accepts(A value) {
		switch (polarity) {
		case Pos:
			for (BooleanTerm<A> subExpr : this.subTerms) {
				if (!subExpr.accepts(value)) {
					return false;
				}
			}
			return true;
		case Neg:
			for (BooleanTerm<A> subExpr : this.subTerms) {
				if (subExpr.accepts(value)) {
					return true;
				}
			}
			return false;
		}
		throw new IllegalStateException();

	}