type families not advertised for 6.8
Wolfgang Jeltsch
g9ks157k at acme.softbase.org
Fri Oct 19 07:03:22 EDT 2007
Am Freitag, 19. Oktober 2007 11:32 schrieben Sie:
> […]
> | In fact, after thinking and experimenting I came to the conclusion that
> | it’s probably just not possible to define a type function TypeEqTF t1 t2
> | which for *all* types t1 and t2 yields True or False, depending on
> | whether t1 and t2 are equal or not.
>
> That's a nice crisp example. It's a pure function, at the level of types,
> so you'd think it should be definable. And I don't think there is any
> reason we couldn't do so (in due course). For example, overlap is fine,
> so long as when we *use* an equation there is only one that applies, so
> that there is a unique answer.
But the problem in the HList example is that two equations apply where the
most specific one should be taken.
> […]
> (Oh, it's just possible that HList might be architected differently if type
> functions were available.)
Yes, but as soon as you start to implement records where field names are
types, you have to have a compile-time type equality check since you need it
for lookup and for making sure that the same field name doesn’t occur twice
in one record. So even if HList would be architectured rather differently,
it would probably still need an equality test.
> Simon
Best wishes,
Wolfgang
More information about the Glasgow-haskell-users
mailing list