docs: @SuppressWarnings("unchecked")
  	protected Tree<FeatureStructure> populateTree(JCas jcas, TOP anno, int typeIndex) {
  		Tree<FeatureStructure> tree = new Tree<FeatureStructure>(anno);
  		if (annotationTypes.size() > typeIndex)
  			if (anno instanceof Annotation) {
  				Class<? extends Annotation> rAnno = (Class<? extends Annotation>) annotationTypes.get(typeIndex);
  				for (TOP a : JCasUtil.selectCovered((Class<? extends Annotation>) rAnno, (Annotation) anno)) {
  					tree.add(populateTree(jcas, a, typeIndex + 1));
  				}
  			} else {
  				for (TOP a : JCasUtil.select(jcas, annotationTypes.get(typeIndex))) {
  					tree.add(populateTree(jcas, a, typeIndex + 1));
  				}
  			}
  		return tree;
  	}