private static void parameters(Tree.ParameterList pl, StyledString label) {
   if (pl == null || pl.getParameters().isEmpty()) {
     label.append("()");
   } else {
     label.append("(");
     int len = pl.getParameters().size(), i = 0;
     for (Tree.Parameter p : pl.getParameters()) {
       if (p != null) {
         label
             .append(type(p.getType()), TYPE_STYLER)
             .append(" ")
             .append(name(p.getIdentifier()), ID_STYLER);
         if (p instanceof Tree.FunctionalParameterDeclaration) {
           Tree.FunctionalParameterDeclaration fp = (Tree.FunctionalParameterDeclaration) p;
           for (Tree.ParameterList ipl : fp.getParameterLists()) {
             parameters(ipl, label);
           }
         }
       }
       if (++i < len) label.append(", ");
     }
     label.append(")");
   }
 }