Dear Derek, since "Matrices, Monads and the Fast Fourier Transform" in the early 90's I've written a couple of other papers on semantics of datatypes. "A semantics for shape" considers more general datatypes than just vectors. "Data categories" is an attempt to embrace co-datatypes as well as datatypes. These, and other papers about the implications for computing, including the array programming language FISh are available from my web-site http://www-staff.it.uts.edu.au/~cbj May I add that we are stabilising a prototype of FISh2 which is altogether more expressive and simpler than FISh. We hope to release it shortly. Now let me address your particular question. you are concerned that the morphism #: VA -> N mapping a vector of A's to its length does not appear to preserve any structure, and so perhaps should not be a morphism at all. There are two aspects to the answer. First, the existence of this morphism is part of the definition of the object of vectors. Given an arrow A -->I we define the corresponding vectors by the pullback VA ---> LA | | | | NxI --> LI where L is the list functor, and then # is defined by composing VA -->NxI with the projection from NxI to N. If the ambient category is Set then such pullbacks exist and the function # is a well-defined function. The second point is that # can be thought of as the upper part of an arrow between arrows which maps a vector of A's to the corresponding vector of 1's VA ---> V1 isom N | | | | | | NxI --> Nx1 isom N I'd be happy to address any other questions you have privately. Yours, Barry Jay ************************************************************************* | Associate Professor C.Barry Jay, Phone: (61 2) 9514 1814 | | Associate Dean Fax: (61 2) 9514 1807 | | (Research, Policy and Planning) | | University of Technology, Sydney, e-mail: cbj@it.uts.edu.au | | P.O. Box 123 Broadway, 2007, | | Australia. http://www-staff.it.uts.edu.au/~cbj | *************************************************************************