[Haskell-cafe] Use of abbreviations in Haskell

Miguel Mitrofanov miguelimo38 at yandex.ru
Sun Jan 4 04:15:50 EST 2009


On 4 Jan 2009, at 07:11, Thomas DuBuisson wrote:

> My proposal would be for each selector name to be a special type of
> "phantom" type class (existing in the intermediate language only).
> This type class would not be accessible by the programmer and thus
> s/he couldn't make a polymorphic function for which specialization
> would be needed.  In other words -  in normal circumstances there is
> no need for dictionaries and thus no run-time difference between this
> method and using different record names.
>
> Example:
>
>> data IPv4Hdr = Hdr4 { src, dst :: IPv4 }
>> data IPv6Hdr = Hdr6 { src, dst :: IPv6 }


> At some intermediate stage you'd see:
>
>> class Src h s where
>>    src :: h -> s
>> class Dst h d where
>>    dst :: h -> d

class Src h s | h -> s


More information about the Haskell-Cafe mailing list