Sorry, I got a bit lost in this discussion. Let me try to provide a summary.<br><br>Current status: I have a local branch with the new poly-kinded
Typeable working fine.<br>It works as described in [1]. It actually allows deriving Typeable for things involving<br>the Constraint kind, but this can be easily disabled. Either way, I think most of this<br>is necessary for whatever might follow next. But I'm not sure of how to push the changes,<br>
because I had to
make some changes to these repos: array, containers, dph,<br>template-haskell, and vector. Worse, I also had to change time, which
gets built from<br>a tarball. It might not be worth contacting the authors of these packages for changes<br>if we're still going to get rid of "deriving Typeable" altogether, so I've been holding this<br>
back.<br><br>It's been proposed to remove the possibility to derive Typeable or write instances for it.<br>I'm supposing the way that this would be implemented would be:<br><br>7.8: Any uses of "deriving Typeable" would give rise to a warning saying that it is no longer<br>
necessary. Any instances of Typeable would give rise to a warning saying that this code<br>is being ignored, and replaced by an internal Typeable instance. Packages might break,<br>or change runtime behaviour due to this change.<br>
<br>7.10: Explicit uses of "deriving Typeable" or instances are an error.<br><br>Regarding split :: (a ~ f i) => Dict (Typeable f, Typeable i), I'm not sure I can judge how<br>much work that would be. But let's first try to draft a plan for removing Typeable definitions<br>
from the user, and then consider more extensions.<br><br><br>Cheers,<br>Pedro<br>
<br>[1] <a href="http://hackage.haskell.org/trac/ghc/wiki/GhcKinds/PolyTypeable" target="_blank">http://hackage.haskell.org/trac/ghc/wiki/GhcKinds/PolyTypeable</a><br><br><div class="gmail_quote">On Tue, Oct 16, 2012 at 8:32 AM, Emil Axelsson <span dir="ltr"><<a href="mailto:emax@chalmers.se" target="_blank">emax@chalmers.se</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">2012-10-15 23:50, Gábor Lehel skrev:<div><div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Mon, Oct 15, 2012 at 7:58 AM, Emil Axelsson <<a href="mailto:emax@chalmers.se" target="_blank">emax@chalmers.se</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I have a use case:<br>
<br>
<br>
<a href="http://hackage.haskell.org/packages/archive/syntactic/1.3/doc/html/Data-DynamicAlt.html" target="_blank">http://hackage.haskell.org/<u></u>packages/archive/syntactic/1.<u></u>3/doc/html/Data-DynamicAlt.<u></u>html</a><br>
<br>
This is a reimplementation of Data.Dynamic to support casting type `a` to<br>
`Dynamic` given a constraint `Typeable (a -> b)`:<br>
<br>
toDyn :: Typeable (a -> b) => P (a -> b) -> a -> Dynamic<br>
<br>
With your suggestion, it seems I should be able to use the ordinary<br>
Data.Dynamic instead.<br>
<br>
/ Emil<br>
<br>
</blockquote>
<br>
Great! Do you like my plan? Or perhaps know of a better one?<br>
<br>
(Relatedly, *does* this have to go through a separate libraries<br>
process? Or are we considering Typeable as getting completely<br>
replaced, and everything pertaining to it gets discussed here?)<br>
</blockquote>
<br></div></div>
Your plan certainly seems general enough! But I'm afraid I can't really speak about the implications on libraries etc.<span><font color="#888888"><br>
<br>
/ Emil<br>
</font></span></blockquote></div><br>