[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