<div dir="ltr"><div>Should the code below work in GHC 8.0.1?</div><div><br></div><div>    {-# LANGUAGE TypeInType, TypeFamilies #-}</div><div><br></div><div>    import Data.Kind (Type)</div><div><br></div><div>    type family K t :: Type</div><div>    type family T t :: K t -> Type</div><div><br></div><div>    data List</div><div><br></div><div>    type instance K List = Type</div><div>    type instance T List = []</div><div><br></div><div><br></div><div>Right now, I get an error like this one:</div><div><br></div><div><div>min.hs:12:24: error:</div><div>    • Expected kind ‘K List -> Type’, but ‘[]’ has kind ‘* -> *’</div><div>    • In the type ‘[]’</div><div>      In the type instance declaration for ‘T’</div><div><br></div></div><div>which is puzzling, since K List -> Type and * -> * should be the same.</div><div><br></div><div>Obviously, TypeInType is experimental and incomplete. I’m just wondering if this sort of thing is expected to work, or if I’m doing something not yet supported or never to be supported</div><div><br></div><div>In particular, the kind signature for T is forall t -> K t -> Type, which looks like DependentHaskell.</div><div><br></div>-- <br><div class="gmail_signature">Dave Menendez <<a href="mailto:dave@zednenem.com" target="_blank">dave@zednenem.com</a>><br><<a href="http://www.eyrie.org/~zednenem/" target="_blank">http://www.eyrie.org/~zednenem/</a>></div>
</div>