static Lisp lispReplaceVars(Lisp l, Map<S, Lisp> map) {
  if (l.isLeaf()) {
    Lisp x = map.get(l.head);
    if (x != null) ret x;
  }
  Lisp x = lisp(l.head);
  for (Lisp a : l.args)
    x.add(lispReplaceVars(a, map));
  ret x;
}