AFAICS those (and few otheres) are inessential uses, very easy to
remove.
> > So, it seems that we should remove VectorSpace: it adds
> > almost nothing and is essentially unused. Any comments?
>
> My feeling actually is that we should keep it, since the concept of
> vector space is so much used in mathematics.
>
> However, I don't care so much. The "/" signature is really inessential,
> but I think "dimension" is somewhat more important. I haven't come
> across such a situation, but it might be useful to ask whether a given
> domain is a vector space, i.e., "if V has VectorSpace(X)".
>
> If you remove VectorSpace, you should conditionally export dimension: %
> -> CardinalNumber in Module(R). But maybe that's too early for
> CardinalNumber to be seen during the bootstrapping process.
Actually, 'dimension' alone is of limited use. In finite
dimensional case one usually wants a basis and we have
good ways to provide basis (like FramedModule). Actually,
it would be rather unusual when one can compute dinension
and get finite value, but one can not easily give a basis.
So, in this sence current VectorSpace looks like bad
concept: it requres _one_ extra nontrival operation, but
omits a lot of other which would be needed in practical
computations.
More to the point, AFAICS 'dimension' requies extra structure
and we can not implement it for arbitrary vector space.
That is probably reason why VectorSpace had so little use:
you can implement 'dimension' only with extra structure,
and in such cases you have so much information that
'dimension' adds essentialy nothing.
--
Waldek Hebisch