code: @SuppressWarnings("unchecked")
    public <GR extends GrammaticalRelationAnnotation> boolean addArc(Class<GR> arcLabel, TreeGraphNode node) {
      if (node == null) {
        return false;
      }
      if (!treeGraph().equals(node.treeGraph())) {
        System.err.println("Warning: you are trying to add an arc from node " + this + " to node " + node + ", but they do not belong to the same TreeGraph!");
      }
      if (!label.containsKey(arcLabel)) {
        label.set(arcLabel, new HashSet<TreeGraphNode>());
      }
      return ((Collection) label.get(arcLabel)).add(node);
    }
docs: Add a labeled arc from this node to the argument node.
  
  @param arcLabel the <code>Class&lt;? extends GrammaticalRelationAnnotation&gt;</code> with which the new arc
  is to be labeled.
  @param node     the <code>TreeGraphNode</code> to which the new
  arc should point.
  @return <code>true</code> iff the arc did not already exist.