I'm thankful for all the both private and public emails I got in consequence of my question "Does equality between sets contradict the philosophy behind structural set theory?", especially the emails I got from Ingo Blechschmidt, Fred Linton, Bob Rosebrugh, and Marquis Jean-Pierre were helpful. Let me briefly sum up what I learnt: If one wants to be fussy, and looks to the question from a "formal system" point of view, then I'm right: Once one puts all morphisms in one big bag and talks about dom and codom as "functions" that both specify a *unique* objects, one can't get around using an equality between sets, which doesn't make sense in a setting of structural set theory. Instead, one should use the definition from *dependent type theory*: a category consists of a collection Ob of objects and for each pair (x, y) of objects in Ob a set Hom(x, y) of morphisms x -> y. Writing f: x -> y is then just a type declaration (and not a statement that is either true or false!) that declares f to be in the collection Hom(x, y). We are not supposed to compare morphisms of different type. But however, there should be a local equality on each set Hom(x, y) so that we can discuss when two morphisms f, g: x -> y of the same type are equal. But, as Fred Linton pointed out, natural language is quite flexible and being written in an informal language, as almost all math books are, one shouldn't interpret everything literally. Writing dom(f) = A for example should just abbreviate that we consider A to be the domain of f—the authors didn't intend to seriously discuss whether two sets are equal or not, it's just a piece of notation. Thus, there isn't really a fault in the book by Lawvere and Rosebrugh. Thanks again, Leopold [For admin and other information see: http://www.mta.ca/~cat-dist/ ]