s.append("inline " + typeString + " __pop__" + dst + "() {\n");
s.append("inline " + typeString + " " + ClusterUtils.popName(dst) + "() {\n");
    public String downstreamDeclaration() {        StringBuffer s = new StringBuffer();        if (NodeEnumerator.getFlatNode(dst).isFilter()) {            // pop from fusion buffer            s.append("inline " + typeString + " __pop__" + dst + "() {\n");            // p.indent();            s.append(typeString + " res=" + bufferName + "[" + tailName                    + "];\n");            s.append(tailIncrementStmts() + "\n");            s.append("return res;\n");            // p.outdent();            s.append("}\n");            s.append("\n");            // pop from fusion buffer with argument            s.append("inline " + typeString + " __pop__" + dst + "(int n) {\n");            // p.indent();            s.append(typeString + " res=" + bufferName + "[" + tailName                    + "];\n");            s.append(tailIncrementStmts("n")+ "\n");            s.append("return res;\n");            // p.outdent();            s.append("}\n");            s.append("\n");            // peek from fusion buffer            s.append("inline " + typeString + " " + ClusterUtils.peekName(dst)                    + "(int offs) {\n");            // p.indent();            s.append("return " + bufferName + "[" + tailOffsetExpr("offs")                    + "];\n");            // p.outdent();            s.append("}\n");            s.append("\n");                }        return s.toString();    }