docs: public Node getAnchor(String a) {
  //         System.err.println("getAnchor(" + a + ")");
          Node n = null;
          if(anchors != null) {
  //             System.err.print(" -- anchors != null\n");
              if(anchors.containsKey(a)) {
  //                 System.err.print(" -- st_lookup succeeded\n");
                  n = anchors.get(a);
                  if(n != null) {
  //                     System.err.print(" -- n != 1\n");
                      return n;
                  } else {
  //                     System.err.print(" -- n === 1\n");
                      if(bad_anchors == null) {
  //                         System.err.print(" -- creating new list of bad anchors\n");
                          bad_anchors = new HashMap<String, Node>();
                      }
  //                     System.err.print(" -- checking if n exists in bad anchors\n");
                      if(!bad_anchors.containsKey(a)) {
  //                         System.err.print(" -- no, it doesnt\n");
                          n = bad_anchor_handler.handle(this, a);
                          bad_anchors.put(a, n);
                      } else {
                          n = bad_anchors.get(a);
                      }
                  }
              }
          }
  
  //         System.err.print(" -- n == null?\n");
          if(n == null) {
  //             System.err.print(" --- yep ?\n");
              n = bad_anchor_handler.handle(this, a);
          }
  
          if(n.anchor == null) {
              n.anchor = a;
          }
  
          return n;
      }