static SS jmatchDollarVars(S pat, S s) { new L vars; S pat2 = dollarVarsToStars(pat, vars); new Matches m; if (!jmatch(pat2, s, m)) null; new SS map; for (int i = 0; i < l(m.m); i++) { S var = vars.get(i); S value = m.get(i); S oldValue = map.get(var); if (oldValue == null) map.put(var, value); else if (neq(oldValue, value)) null; } ret map; }