On 7/25/19 7:51 PM, oldk1331 wrote:
> Actually, it's not necessary to treat differently for
> OrderedMonoid/noZeroDivisors. We can simply have
>
> a : % * b : % ==
> zero? a or zero? b => 0
> construct! concat! [[[ta.Mn*tb.Mn, ta.Cf*tb.Cf]$Term
> for tb in b] for ta in a]
>
> we collect all the terms and let "construct" do the heavy lifting.
> See my updated patch.
There is a serious problem in "construct" though, it may
modify the content of a "Term":
t1.c:= t1.c+t2.c
We should create new cells instead of reusing old ones.