static S replaceVars2(S s, O... params) {
  ret join(replaceVars2(javaTok(s), params));
}
  
static L<S> replaceVars2(L<S> tok, O... params) {
  Map<S, O> map = litmap(params);
  tok = cloneList(tok);
  for (S var : keys(map)) {
    O value = map.get(var);
    jreplace(tok, var, str(value));
  }
  ret tok;
}