On Mon, 2007-09-24 at 19:11 -0700, Dan Weston wrote: > Well, I did footnote in my first e-mail that: > > [1] I used the asterisk in the category name Hask* to exclude undefined > values or partial functions > > [Although I think I may have flipped the asterisk convention.] > > I see what you mean by const False and const True being two different > arrows, but now I don't know how that reconciles with the Wikipedia > Example 3 of http://en.wikipedia.org/wiki/Initial_object > > "In the category of pointed sets (whose objects are non-empty sets > together with a distinguished element; a morphism from (A,a) to (B,b) > being a function f : A ? B with f(a) = b), every singleton is a zero > object [i.e. both initial and final]." > > I thought I was being safe by "distinguishing" () as my distinguished > element. Where did I go wrong?
() is terminal, not initial. There exists a unique function to it (ignoring bottoms) from anything, namely, const (). A "point" of A categorically, is just a function from the terminal object to A, () -> A. For the notion of "pointed" that you want, the important thing is that f = g :: A -> B iff for all k :: () -> A, f . k = g . k. I.e. a function is completely determined by its action on points. _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
