[Haskell-cafe] Why aren't there anonymous sum types in Haskell?

Alexey Khudyakov alexey.skladnoy at gmail.com
Tue Jun 21 22:57:49 CEST 2011


On 22.06.2011 00:32, pipoca wrote:
> On Jun 21, 4:15 pm, Alexander Solla<alex.so... at gmail.com>  wrote:
>> The problem is that a sum type must "name" the different types, or else it
>> can't give access to them.  How is a function supposed to know if a value
>>
>> blah :: A :+: B
>>
>> is an A or a B?  It seems possible that it could figure it out, but that
>> problem is undecidable in general.
>
> Why can't you use pattern matching?  We'd probably want to change the
> syntax a little, to tell Haskell that we want to use an anonymous sum.
>
> Something like:
>
> foo :: Bar :+: Baz ->  Quux
> foo<Bar bar>  = ...
> foo<Baz baz>  = ...
>
> Would finding the type signature of foo be undecidable?
>
Types may be same.

oops :: Int :+: Int -> Int
oops <Int i> = mmm which one?



More information about the Haskell-Cafe mailing list