code: public GeneralizedCounter<K> conditionalize(List<K> l) {
      int n = l.size();
      if (n >= depth()) {
        throw new RuntimeException("Error -- attempted to conditionalize a GeneralizedCounter of depth " + depth() + " on a vector of length " + n);
      } else {
        GeneralizedCounter<K> next = this;
        for (K o: l) {
          next = next.conditionalizeHelper(o);
        }
        return next;
      }
    }
docs: returns a GeneralizedCounter conditioned on the objects in the
  {@link List} argument. The length of the argument {@link List}
  must be less than the depth of the GeneralizedCounter.