PolyKind issue in GHC 7.6.1rc1: How to make a kind a functional dependency?

Richard Eisenberg eir at cis.upenn.edu
Fri Oct 12 05:47:25 CEST 2012

On Oct 11, 2012, at 11:20 PM, Nicolas Frisby wrote:
> (Also — what's the general status on this initiative? Has much
> happened in about a month?)

From my end, nothing. I'm trying to wrap up some other work I'm doing on GHC (ordered overlapping type family instances), and it looks like some of the questions I raised in my last email in this thread are still open.

> The to my trick key is to use the promotion of this data type.
>> data KindProxy (k :: *) = KindProxy

Yes, I used this in an earlier version of singletons. Then, Simon told me about Any, and that cleaned up the code considerably. I don't think, though, there was anything fundamentally wrong (other than aesthetics) with KindProxy. Thanks for bringing this up, as I had forgotten about this approach in the intervening months.
> I'm less familiar with the usage in GHC.TypeLits.

Iavor and I collaborated on the design of the building blocks of singleton types, as we wanted our work to be interoperable. A recent scan through TypeLits tells me, though, that somewhere along the way, our designs diverged a bit. Somewhere on the to-do list is to re-unify the interfaces, and actually just to import TypeLits into Data.Singletons so the definitions are one and the same. Iavor, I'm happy to talk about the details if you are.

Nick, thanks for pushing on this thread!


More information about the Glasgow-haskell-users mailing list