Inconsistent return value for solve->all



solve has three ways of representing "all values of *var* satisfy the
equation":

   solve(x=x,x) => all
   solve(1+1/x-(x+1)/x,x) => [x=x]   ... this seems like a bug
   solve([x=x,x=x],x) => [[x=%r1]]   ... returned by algsys

Wouldn't it be better if we standardized on one of these?  I would propose
the %r1 solution.

I imagine there are a few scripts that special-case the 'all' solution -- I
wonder what happens to them if %r1 is returned?  Some might even work
correctly without modification.

I suspect that most scripts that get the x=x solution incorrectly treat
that as a non-solution because the RHS includes *var* (like solve(f(x)=x)
=> [x=f(x)]).

Thoughts?

          -s