<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif][if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
 </w:LatentStyles>
</xml><![endif][if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
        {mso-style-name:"Table Normal";
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-parent:"";
        mso-padding-alt:0in 5.4pt 0in 5.4pt;
        mso-para-margin:0in;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";
        mso-ansi-language:#0400;
        mso-fareast-language:#0400;
        mso-bidi-language:#0400;}
</style>
<![endif]-->

<p _moz_dirty="" class="MsoNormal">Hi,<br />
Below is my attempt to code the first example from Walder’s <a href="http://ttic.uchicago.edu/~dreyer/course/papers/wadler.pdf">Theorems for
free!</a> paper.</p>

<p _moz_dirty="" class="MsoNormal">I am not sure about what is being proved. </p>

<p _moz_dirty="" class="MsoNormal">Using the notation from the paper does the proof establish a
property of map, r, composition or the relationship between all three?</p>

<p _moz_dirty="" class="MsoNormal"> </p>

<p _moz_dirty="" class="MsoNormal">{-# LANGUAGE ExistentialQuantification #-}</p>

<p _moz_dirty="" class="MsoNormal">import Data.Char</p>

<p _moz_dirty="" class="MsoNormal">r :: forall a . [a] -&gt; [a]</p>

<p _moz_dirty="" class="MsoNormal">r = reverse</p>

<p _moz_dirty="" class="MsoNormal">g :: Char -&gt; Int</p>

<p _moz_dirty="" class="MsoNormal">g = ord</p>

<p _moz_dirty="" class="MsoNormal"> </p>

<p _moz_dirty="" class="MsoNormal">(map g . r $ ['a','b','c']) == (r . map g $ ['a','b','c'])</p>

<p _moz_dirty="" class="MsoNormal"> </p>

<p _moz_dirty="" class="MsoNormal">Regards,</p>

<p _moz_dirty="" class="MsoNormal">Pat</p>