Ralf Hemmecke wrote: > > I find this construction > > https://github.com/fricas/fricas/blob/master/src/algebra/aggcat.spad#L97 > > HomogeneousAggregate(S : Type) : Category == Aggregate with > ... > if % has shallowlyMutable then > map! : (S->S, %) -> % > if % has finiteAggregate then > if S has BasicType then BasicType > any? : (S->Boolean, %) -> Boolean > ... > > rather interesting.
It is tricky to implement, but quite useful. > These has-forms certainly can only evaluate to true in a context where > > Dom: Join(HomogeneousAggregate(X), finiteAggregate, ...) === > > I had probably introduced > > FiniteHomogeneousAggregate(X...): Category == > Join(HomogeneousAggregate(X), finiteAggregate, ...) with > > and put the signatures that appear above in an if condition into this > more specialized category FiniteHomogeneousAggregate without condition. Well, HomogeneousAggregate has 46 category descendants. Your approach would force splitting some of those categories into finite and non-finite variants. Consequently we would get a bunch of irrelevant distintions during type checking. IMHO current way is _much_ better. -- Waldek Hebisch hebi...@math.uni.wroc.pl -- You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group. To unsubscribe from this group and stop receiving emails from it, send an email to fricas-devel+unsubscr...@googlegroups.com. To post to this group, send email to fricas-devel@googlegroups.com. Visit this group at http://groups.google.com/group/fricas-devel. For more options, visit https://groups.google.com/d/optout.