code: private void walk(Node<Scope> element, List<Node<Scope>> list) {
          walk(element, list, new NodePredicate<Scope>() {
              @Override
              public boolean appliesTo(Node<Scope> node) {
                  return true;
              }
          });
      }
docs: Walks the Scoperee in pre-order style. Scopehis is a recursive method, and is
  called from the toList() method with the root element as the first
  argument. It appends to the second argument, which is passed by reference
  as it recurses down the tree.
  
  @param element the starting element.
  @param list the output of the walk.