Hi Simon,<br><br>How should an instance of Typeable for a polykinded tycon look like? E.g. if we have<br><br>data Proxy (a :: k) = Proxy<br>-- Proxy :: forall (k :: BOX). k -&gt; *<br><br>I suppose we want an instance<br><br>

forall k. instance Typeable (k -&gt; *) (Proxy k)<br><br>Right? So the universally quantified kind variables of the tycon should end up universally<br>quantified in the instance as well. How does this translate to the ds_tvs, ds_tys, and<br>

ds_tc_args arguments of a DerivSpec?...<br><br><br>Thanks,<br>Pedro<br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">GHC</b> <span dir="ltr">&lt;<a href="mailto:cvs-ghc@haskell.org">cvs-ghc@haskell.org</a>&gt;</span><br>

Date: Mon, Feb 18, 2013 at 8:42 PM<br>Subject: [GHC] #7704: Phantom types break new polykind Typeable with either StandaloneDeriving or AutoDeriveTypeable<br>To: <br>Cc: <a href="mailto:ghc-tickets@haskell.org">ghc-tickets@haskell.org</a><br>

<br><br>#7704: Phantom types break new polykind Typeable with either StandaloneDeriving or<br>
AutoDeriveTypeable<br>
-----------------------------+----------------------------------------------<br>
Reporter:  nwf               |          Owner:<br>
    Type:  bug               |         Status:  new<br>
Priority:  normal            |      Component:  Compiler<br>
 Version:  7.7               |       Keywords:<br>
      Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple<br>
 Failure:  None/Unknown      |      Blockedby:<br>
Blocking:                    |        Related:<br>
-----------------------------+----------------------------------------------<br>
 This test program, reduced from an attempt to bring ekmett&#39;s tagged<br>
 package to HEAD,<br>
 {{{<br>
 {-# LANGUAGE DeriveDataTypeable #-}<br>
 {-# LANGUAGE PolyKinds #-}<br>
 {-# LANGUAGE AutoDeriveTypeable #-}<br>
<br>
 newtype Tagged s b = Tagged { unTagged :: b }<br>
 }}}<br>
 results in<br>
 {{{<br>
 GHCi, version 7.7.20130218: <a href="http://www.haskell.org/ghc/" target="_blank">http://www.haskell.org/ghc/</a>  :? for help<br>
 Loading package ghc-prim ... linking ... done.<br>
 Loading package integer-gmp ... linking ... done.<br>
 Loading package base ... linking ... done.<br>
 [1 of 1] Compiling Main             ( typeable.hs, interpreted )<br>
<br>
 typeable.hs:5:1:<br>
     Derived typeable instance must be of form (Typeable Tagged)<br>
     In the stand-alone deriving instance for<br>
       `Data.Typeable.Internal.Typeable Tagged&#39;<br>
 }}}<br>
<br>
 This message is also emitted if I replace `AutoDeriveTypeable`<br>
 `StandaloneDeriving` and `deriving instance Typeable Tagged`.<br>
<br>
 However, a &quot;deriving (Typeable)&quot; clause on the newtype definition works<br>
 just fine.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Ticket URL: &lt;<a href="http://hackage.haskell.org/trac/ghc/ticket/7704" target="_blank">http://hackage.haskell.org/trac/ghc/ticket/7704</a>&gt;<br>
GHC &lt;<a href="http://www.haskell.org/ghc/" target="_blank">http://www.haskell.org/ghc/</a>&gt;<br>
The Glasgow Haskell Compiler<br>
<br>
_______________________________________________<br>
ghc-tickets mailing list<br>
<a href="mailto:ghc-tickets@haskell.org">ghc-tickets@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/ghc-tickets" target="_blank">http://www.haskell.org/mailman/listinfo/ghc-tickets</a><br>
</font></span></div><br>