On 6 Jan 2008, at 3:55 AM, Yitzchak Gale wrote:
What goes wrong with finite coproducts? The obvious thing to
do would be to take the disjoint union of the sets representing the
types, identifying the copies of _|_.
Jonathan Cast wrote:
This isn't a coproduct. If we have f x = 1 and g y = 2, then there
should exist a function h such that h . Left = f and h . Right = g...
But by your rule, Left undefined = Right undefined...
Which is a contradiction...
Unless, of course,
your require your functions to be strict --- then both f and g above
become illegal, and repairing them removes the problem.
You don't have to make them illegal - just not part
of your notion of "coproduct".
We're talking past each other --- what is the distinction you are
Haskell-Cafe mailing list