On Tue, Jun 21, 2011 at 5:24 PM, pipoca <eliyahu.ben.mi...@gmail.com> wrote: > If you were to have your anonymous sum types be a union instead of the > disjoint union, then you could say that A :+: A has no meaning. > That's what I was originally thinking of when I suggested that > syntax. However, as was pointed out to me by David Sankel, disjoint > unions are more powerful than regular unions. Since that's the case, > Matthew Steele's suggested syntax makes more sense. It means that you > need to remember the order of your arguments, but you need to do that > with tuples, anyway.
Of course, the same idea could be applied to tuples as well. An "anonymous product" A :*: B would be a collection with no defined order for its elements, indexed by type instead of position. A :*: A would be meaningless for similar reasons to A :+: A. That said, I don't think either retains the tidy algebraic properties that disjoint unions and tuples have, so I'm not sure if calling them sums and products is actually correct. - C. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe