@Override
    public String getElement() {

      String elementText = "List(";
      for (AlternativeTransformationListElement listElement : this.listElements) {
        elementText += listElement.getElement() + " ";
      }
      elementText = elementText.substring(0, elementText.length() - 1);
      elementText += ")";

      return elementText;
    }
    @Override
    public void constructType() {

      this.type = new Type.SimpleType.EmptyListType();

      for (int i = 0; i < getListElements().size(); i++) {
        AlternativeTransformationListElement element = getListElements().get(i);

        element.constructType();
        this.type = (Type.SimpleType) this.type.add(element.getType());

        if (this.type == null) {
          throw SemanticException.uncompatibleListElement(
              getListElements().get(i - 1), getListElements().get(i));
        }
      }
    }