[Haskell-cafe] Re: ANN: data-category, restricted categories
Ashley Yakeley
ashley at semantic.org
Tue Mar 30 16:35:59 EDT 2010
wagnerdm at seas.upenn.edu wrote:
> Forgive me if this is stupid--I'm something of a category theory
> newbie--but I don't see that Hask necessarily has an initial object in
> the bottomless interpretation. Suppose I write
>
> data Nothing2
>
> Then if I understand this correctly, for Nothing to be an initial
> object, there would have to be a function f :: Nothing -> Nothing2,
> which seems hard without bottom.
> This is a difference between Hask and
> Set, I guess: we can't write down the "empty function".
Right. It's an unfortunate limitation of the Haskell language that one
cannot AFAIK write this:
f :: Nothing -> Nothing2;
f n = case n of
{
};
However, one can work around it with this function:
never :: Nothing -> a
never n = seq n undefined;
Of course, this workaround uses undefined, but at least "never" has the
property that it doesn't return bottom unless it is passed bottom.
--
Ashley Yakeley
More information about the Haskell-Cafe
mailing list