static Patternized genericPatternize(O pred, S s) {
  L<S> tok = codeTokens(javaTok(s));
  new L<S> pat;
  new L<S> args;
  for (S t : tok)
    if (callPred(pred, t)) {
      pat.add("*");
      args.add(t);
    } else if (eq(t, "*"))
      pat.add("\\*");
    else
      pat.add(t);
  ret new Patternized(join(" ", pat), args);
}