[Haskell-cafe] Composition Operator
derek.a.elkins at gmail.com
Tue Sep 25 01:08:34 EDT 2007
On Mon, 2007-09-24 at 19:11 -0700, Dan Weston wrote:
> Well, I did footnote in my first e-mail that:
>  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.
More information about the Haskell-Cafe