<div dir="ltr">If the instances are hand-rolled in base, you&#39;ll need:<div><br></div><div><pre style="margin-top:0px;margin-bottom:0px;color:rgb(68,68,68);font-size:13px"><span class="" style="color:rgb(57,116,96)">instance</span> <span class="" style="color:rgb(79,67,113)">Data</span> <span class="" style="color:rgb(79,67,113)">Version</span> <span class="" style="color:rgb(57,116,96)">where</span>
  <span class="" style="color:rgb(51,51,51)">gfoldl</span> <span class="" style="color:rgb(51,51,51)">k</span> <span class="" style="color:rgb(51,51,51)">z</span> <span class="">(</span><span class="" style="color:rgb(79,67,113)">Version</span> <span class="" style="color:rgb(51,51,51)">bs</span> <span class="" style="color:rgb(51,51,51)">ts</span><span class="">)</span> <span class="">=</span> <span class="" style="color:rgb(51,51,51)">z</span> <span class="" style="color:rgb(79,67,113)">Version</span> <span class="" style="color:rgb(51,51,51)">`k`</span> <span class="" style="color:rgb(51,51,51)">bs</span> <span class="" style="color:rgb(51,51,51)">`k`</span> <span class="" style="color:rgb(51,51,51)">ts</span>
  <span class="" style="color:rgb(51,51,51)">gunfold</span> <span class="" style="color:rgb(51,51,51)">k</span> <span class="" style="color:rgb(51,51,51)">z</span> <span class="" style="color:rgb(51,51,51)">c</span> <span class="">=</span> <span class="" style="color:rgb(57,116,96)">case</span> <span class="" style="color:rgb(51,51,51)">constrIndex</span> <span class="" style="color:rgb(51,51,51)">c</span> <span class="" style="color:rgb(57,116,96)">of</span>
    <span class="" style="color:rgb(79,67,113)">1</span> <span class="">-&gt;</span> <span class="" style="color:rgb(51,51,51)">k</span> <span class="">(</span><span class="" style="color:rgb(51,51,51)">k</span> <span class="">(</span><span class="" style="color:rgb(51,51,51)">z</span> <span class="" style="color:rgb(79,67,113)">Version</span><span class="">)</span><span class="">)</span>
    <span class="" style="color:rgb(57,116,96)">_</span> <span class="">-&gt;</span> <span class="" style="color:rgb(51,51,51)">error</span> <span class="" style="color:rgb(54,99,84)">&quot;Data.Data.gunfold(Version)&quot;</span>
  <span class="" style="color:rgb(51,51,51)">toConstr</span> <span class="">(</span><span class="" style="color:rgb(79,67,113)">Version</span> <span class="" style="color:rgb(57,116,96)">_</span> <span class="" style="color:rgb(57,116,96)">_</span><span class="">)</span> <span class="">=</span> <span class="" style="color:rgb(51,51,51)">versionConstr</span>
  <span class="" style="color:rgb(51,51,51)">dataTypeOf</span> <span class="" style="color:rgb(57,116,96)">_</span> <span class="">=</span> <span class="" style="color:rgb(51,51,51)">versionType</span>

<span class="">versionConstr</span> <span class="">::</span> <span class="" style="color:rgb(79,67,113)">Constr</span>
<span class="">versionConstr</span> <span class="">=</span> <span class="" style="color:rgb(51,51,51)">mkConstr</span> <span class="" style="color:rgb(51,51,51)">versionType</span> <span class="" style="color:rgb(54,99,84)">&quot;Version&quot;</span> <span class="">[</span><span class="" style="color:rgb(54,99,84)">&quot;versionBranch&quot;</span><span class="">,</span><span class="" style="color:rgb(54,99,84)">&quot;versionTags&quot;</span><span class="">]</span> <span class="" style="color:rgb(79,67,113)">Prefix</span>

<span class="">versionType</span> <span class="">::</span> <span class="" style="color:rgb(79,67,113)">DataType</span>
<span class="">versionType</span> <span class="">=</span> <span class="" style="color:rgb(51,51,51)">mkDataType</span> <span class="" style="color:rgb(54,99,84)">&quot;Data.Version.Version&quot;</span> <span class="">[</span><span class="" style="color:rgb(51,51,51)">versionConstr</span><span class="">]</span></pre>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Sep 12, 2013 at 7:24 AM, Herbert Valerio Riedel <span dir="ltr">&lt;<a href="mailto:hvr@gnu.org" target="_blank">hvr@gnu.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello *,<br>
<br>
As we&#39;re still in time to get this in before the GHC 7.8 freeze and this<br>
seems to be &quot;the right thing&quot; to do, are there any objections to<br>
implement this (specifically, adding a `deriving Data` to `base`s<br>
Data.Version for GHC 7.8.1)?<br>
<br>
Cheers,<br>
  hvr<br>
<div class="HOEnZb"><div class="h5"><br>
On 2013-03-15 at 23:29:21 +0100, Edward A Kmett wrote:<br>
&gt; +1 from me. I&#39;ve had to use an orphan<br>
&gt;<br>
&gt; Sent from my iPhone<br>
&gt;<br>
&gt; On Mar 15, 2013, at 5:56 PM, David Lazar &lt;<a href="mailto:lazar6@illinois.edu">lazar6@illinois.edu</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; Hi,<br>
&gt;&gt;<br>
&gt;&gt; Can we derive Data for Data.Version.Version? It would benefit Cabal.<br>
&gt;&gt;<br>
&gt;&gt; Thanks,<br>
&gt;&gt; David<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Libraries mailing list<br>
&gt;&gt; <a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
&gt;&gt; <a href="http://www.haskell.org/mailman/listinfo/libraries" target="_blank">http://www.haskell.org/mailman/listinfo/libraries</a><br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
&quot;Elegance is not optional&quot; -- Richard O&#39;Keefe<br>
</font></span></blockquote></div><br></div>