<div>The following instances are missing and have only one sensible definition. I&#39;ve been bitten by their lack repeatedly and there is no place outside of base that they can live without needlessly being orphaned. </div>
<div><br></div><div>I would like to propose adding the following instances to Data.Foldable and Data.Traversable.</div><div><br></div><div><span class="hs-keyword" style="color:rgb(57,116,96);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">instance</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">Foldable</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">Either</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">e</span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-keyword" style="color:rgb(57,116,96);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">where</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">
  </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">foldMap</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">f</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">Right</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">m</span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-keyglyph" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">=</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">f</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">m</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">
  </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">foldMap</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-keyword" style="color:rgb(57,116,96);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">_</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">Left</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-keyword" style="color:rgb(57,116,96);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">_</span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-keyglyph" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">=</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">mempty</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">

</span><span class="hs-keyword" style="color:rgb(57,116,96);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">instance</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">Traversable</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">Either</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">e</span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-keyword" style="color:rgb(57,116,96);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">where</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">
  </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">traverse</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-keyword" style="color:rgb(57,116,96);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">_</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">Left</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">e</span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-keyglyph" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">=</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">pure</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">Left</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">e</span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">
  </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">traverse</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">f</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">Right</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">x</span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-keyglyph" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">=</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">Right</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varop" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">&lt;$&gt;</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">f</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">x</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">

</span><span class="hs-keyword" style="color:rgb(57,116,96);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">instance</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">Foldable</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(,)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">e</span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-keyword" style="color:rgb(57,116,96);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">where</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">
  </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">foldMap</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">f</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="hs-keyword" style="color:rgb(57,116,96);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">_</span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">,</span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">x</span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-keyglyph" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">=</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">f</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">x</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">

</span><span class="hs-keyword" style="color:rgb(57,116,96);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">instance</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">Traversable</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(,)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">e</span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-keyword" style="color:rgb(57,116,96);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">where</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">
  </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">traverse</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">f</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">e</span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">,</span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">x</span><span class="hs-layout" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-keyglyph" style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">=</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-conid" style="color:rgb(79,67,113);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">(,)</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">e</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varop" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">&lt;$&gt;</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">f</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="hs-varid" style="color:rgb(51,51,51);font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">x</span><span style="font-family:monospace;font-size:12.800000190734863px;text-align:left;white-space:pre;background-color:rgb(255,255,255)">
</span></div><div><br></div><div>I had thought honestly thought we&#39;d already added them long ago.</div><div><br></div><div>Discussion Period: 2 Weeks</div><div><br></div><div>-Edward Kmett</div><br><div class="gmail_quote">
On Tue, Jan 3, 2012 at 7:50 PM, Ben Millwood <span dir="ltr">&lt;<a href="mailto:haskell@benmachine.co.uk" target="_blank">haskell@benmachine.co.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Yeah, I noticed this the other day, and a couple of other instances<br>
which aren&#39;t defined, but could be:<br>
<br>
<a href="http://hpaste.org/56005" target="_blank">http://hpaste.org/56005</a><br>
<br>
I won&#39;t pretend I have much use for the Const instance, but it seems<br>
like it should be there anyway, just for completeness (I think it&#39;s<br>
possible to define Traversable instances for compositions of functors,<br>
possibly sums and products as well, so Const could be useful in that<br>
context). I think the Either one makes sense, though, as a natural<br>
analogue of the Maybe instance.<br>
<div class="HOEnZb"><div class="h5"><br>
On Tue, Jan 3, 2012 at 11:41 PM, Conal Elliott &lt;<a href="mailto:conal@conal.net">conal@conal.net</a>&gt; wrote:<br>
&gt; Thanks much for the answers, Conor. They all make sense to me, particularly<br>
&gt; about the typical information discarding in Foldable.<br>
&gt;<br>
&gt; Regards, - Conal<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Jan 3, 2012 at 3:30 PM, Conor McBride &lt;<a href="mailto:conor@strictlypositive.org">conor@strictlypositive.org</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On 3 Jan 2012, at 23:12, Conal Elliott wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; I wanted a Traversable instance for pairing, so I defined one:<br>
&gt;&gt;&gt; &gt; instance Traversable ((,) o) where<br>
&gt;&gt;&gt; &gt;   sequenceA (o,fa) = (o,) &lt;$&gt; fa<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; That looks right. Of course, we should really have a BiTraversable<br>
&gt;&gt; class of which (,) is an instance.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; However, Foldable is a superclass of Traversable, so I get an error<br>
&gt;&gt;&gt; message:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;    Could not deduce (Foldable ((,) o)) from the context ()<br>
&gt;&gt;&gt;      arising from the superclasses of an instance declaration<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The best I&#39;ve thought of is the following:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt; instance Foldable ((,) o) where<br>
&gt;&gt;&gt; &gt;   fold (_,m) = m<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; The best (upto efficiency considerations) is always<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;  instance Foldable ((,) o) where<br>
&gt;&gt;    foldMap = foldMapDefault<br>
&gt;&gt;<br>
&gt;&gt; which amounts to what you chose.<br>
&gt;&gt;<br>
&gt;&gt; SHE makes this a default superclass instance.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt; However, I don&#39;t like how it discards information.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; But these folds always do discard information, discarding the shape<br>
&gt;&gt; information and accumulating over the contents. For ((,) o), seen as<br>
&gt;&gt; a functor, the first component is shape information and the second is<br>
&gt;&gt; the content.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt; Some questions:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; * Why is Foldable a superclass of Traversable?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Because the constant-monoid Applicative makes every Traversable<br>
&gt;&gt; Foldable in a uniform way.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt; * Is there a good choice of a Foldable instance of ((,) o)?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Yes, the one you chose.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt; * Are there any other problems with the Traversable instance above<br>
&gt;&gt;&gt; (besides foldability)?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Nope. It&#39;s the Traversable instance which picks out exactly the<br>
&gt;&gt; contents that correspond to the elements abstracted by the Functor.<br>
&gt;&gt;<br>
&gt;&gt; All the best<br>
&gt;&gt;<br>
&gt;&gt; Conor<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
</div></div><div class="HOEnZb"><div class="h5">&gt; _______________________________________________<br>
&gt; Libraries mailing list<br>
&gt; <a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
&gt; <a href="http://www.haskell.org/mailman/listinfo/libraries" target="_blank">http://www.haskell.org/mailman/listinfo/libraries</a><br>
&gt;<br>
<br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/libraries" target="_blank">http://www.haskell.org/mailman/listinfo/libraries</a><br>
</div></div></blockquote></div><br>