<!--[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] -> [a]</p>
<p _moz_dirty="" class="MsoNormal">r = reverse</p>
<p _moz_dirty="" class="MsoNormal">g :: Char -> 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>