Вот так, понятно, работает:
(%i199) matchdeclare(any_exp,true);
(%o199)                              done
(%i200) let([any_exp^2,p0(any_exp,any_exp)],oper);
                              2
(%o200)                any_exp  --> p0(any_exp, any_exp)
(%i203) exp0:p0(x^2,y);
                                       2
(%o203)                            p0(x , y)
(%i204) letsimp(args(exp0),oper);
(%o204)                          [p0(x, x), y]
Однако почему letsimp не лезет в аргументы?
(%i205) letsimp(exp0,oper);
                                       2
(%o205)                            p0(x , y)
Это баг или фича?
