Can you just write:<br><br>data ListGT map k a<br>&nbsp;&nbsp;= Empt<br>&nbsp;&nbsp;| BraF ![k] a !(map (ListGT map k a))<br>&nbsp;&nbsp;| BraE ![k]&nbsp;&nbsp; !(map (ListGT map k a))<br>&nbsp;&nbsp; deriving( Typeable )<br><br>?<br><br><div><span class="gmail_quote">On 7/7/07, 
<b class="gmail_sendername">Adrian Hey</b> &lt;<a href="mailto:ahey@iee.org">ahey@iee.org</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello,<br><br>I&#39;m trying to make the type (ListGT map k a) an instance of Typeable,<br>where map is kind (* -&gt; *).<br><br>data ListGT map k a<br>&nbsp;&nbsp;= Empt<br>&nbsp;&nbsp;| BraF ![k] a !(map (ListGT map k a))<br>&nbsp;&nbsp;| BraE ![k]&nbsp;&nbsp; !(map (ListGT map k a))
<br><br>I thought I&#39;d cracked it with something like this..<br><br>instance (Typeable (map (ListGT map k a)), Typeable k, Typeable a) =&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Typeable (ListGT map k a) where<br>&nbsp;&nbsp;&nbsp;&nbsp;typeOf lgt = mkTyConApp (mkTyCon &quot;
Data.Trie.General.ListGT&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[mTypeRep, kTypeRep, aTypeRep]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where BraF [k] a m = lgt -- This is just to get types for k a m !!<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kTypeRep = typeOf k<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aTypeRep = typeOf a
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mTypeRep = typeOf m<br><br>However, showing the resulting TypRep gives a stack overflow. I wasn&#39;t<br>too surprised about this, so I tried replacing the last line with..<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mTypeRep = mkTyConApp (typeRepTyCon (typeOf m)) []
<br>..thinking that this would make it terminate. But it doesn&#39;t.<br><br>Could someone explain how to do this?<br><br>Thanks<br>--<br>Adrian Hey<br><br><br>_______________________________________________<br>Haskell-Cafe mailing list
<br><a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br><a href="http://www.haskell.org/mailman/listinfo/haskell-cafe">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br></blockquote></div><br>