optimize(f(x)^f(x)) => block([%1],%1:f(x),%1^%1) which is fine, except that %1 is not interned. Why not? It is, after all, a bound variable. This makes it a pain to manipulate.... -s