"Bill Page" <[EMAIL PROTECTED]> writes:
> > Many of the categories and friends dragged in by Integer do
> > not seem to be of necessity at the lowest level. So, you
> > could start with just the simple data structure Integer with
> > few operations and extend it as you go.
>
> But for this to be sucessful for the entire Axiom library
> wouldn't that require that there be no essential mutual
> recursion between source modules? I do not see how extend
> helps in this case. Sure it is possible even to have
> mutual recursion between extensions, not?
At least in Aldor you can have more or less arbitrary mutual dependencies. We
use that (heavily) in the species project ("aldor-combinat").
However, I don't think that the current Axiom algebra uses it. In any case,
"extend" would make life a lot easier, although my top priority still is to
make types first class objects and to allow domain constructors like
SPECIES ==> (L: LabelType) -> CombinatorialSpecies L;
Plus(
F: SPECIES,
G: SPECIES
)(L: LabelType): CombinatorialSpecies(L) == add {
Rep == Union(left: F L, right: G L);
import from Rep;
<<implementation: Plus>>
}
Martin
_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer