I'll be using the word `specification' in an informal sense that I hope is clear from context.
A /category/ is a collection of specifications. A /domain/ is a collection of implementations. An /object/ is any computational values in an OpenAxiom program. An object has a representation given by a domain. An object /o/ is said to have type 'd' if 'd' implements the reprsentation for the object /o/. A category constructor is a category-valued function, defined with the term 'Category' as its return type. A domain constructor is a domain-valued function, defined with a category as its return type. Category contructors and domain constructors may be parameterized by domains and categories. Furthermore, domains and categories have runtime representations, e.g. they are reflected as objects in OpenAxiom. In particular, domains objects have type 'Domain', and category objects have type 'Category'. And 'Domain' and 'Category' are indeed domains, because they implement specifications and provide object representations. I did not discuss the notion of /package/, as it is almost like a domain -- it implements specifications -- except that it does not provide object representation. -- Gaby ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ open-axiom-devel mailing list open-axiom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open-axiom-devel