This book has grown out of eight years of close collaboration among its authors. From the very beginning we decided that its content should come out as the result of a truly common effort. That is, we did not "distribute" parts of the text planned to each one of us. On the contrary, we made a point that each single paragraph be the product of a common reflection. Genuine team-work is not as usual in philosophy as it is in other academic disciplines. We think, however, that this is more due to the idiosyncrasy of philosophers than to the nature of their subject. Close collaboration with positive results is as rewarding as anything can be, but it may also prove to be quite difficult to implement. In our case, part of the difficulties came from purely geographic separation. This caused unsuspected delays in coordinating the work. But more than this, as time passed, the accumulation of particular results and ideas outran our ability to fit them into an organic unity. Different styles of exposition, different ways of formalization, different levels of complexity were simultaneously present in a voluminous manuscript that had become completely unmanageable. In particular, a portion of the text had been conceived in the language of category theory and employed ideas of a rather abstract nature, while another part was expounded in the more conventional set-theoretic style, stressing intui tivity and concreteness.