<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Hi Alexander,<br><br>Prelude FmapFunc&gt; let s = show :: ((-&gt;) Int) String<br>Prelude FmapFunc&gt; :t s<br>s :: Int -&gt; String<br><br>The notation was throwing me, but after staring at it for a while it finally sunk in that show (above) is partially applied.<br><br>Thanks, all.<br><br>Michael<br><br><br>--- On <b>Thu, 9/2/10, Alexander Solla <i>&lt;ajs@2piix.com&gt;</i></b> wrote:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>From: Alexander Solla &lt;ajs@2piix.com&gt;<br>Subject: Re: [Haskell-cafe] On to applicative<br>To: <br>Cc: "haskell-cafe Cafe" &lt;haskell-cafe@haskell.org&gt;<br>Date: Thursday, September 2, 2010, 2:46 PM<br><br><div id="yiv341162648"><br><div><div>On Sep 2, 2010, at 11:30 AM, michael rice wrote:</div><br class="yiv341162648Apple-interchange-newline"><blockquote
 type="cite"><span class="yiv341162648Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font: inherit;" valign="top">In each case, what does the notation<br><br>show:: ...<br><br>and<br><br>undefined:: ...<br><br>accomplish?</td></tr></tbody></table></span></blockquote></div><br><div>They're type annotations. &nbsp;show is a function in "many" types:</div><div><br></div><div><div><font class="yiv341162648Apple-style-span" face="Courier">Prelude&gt; :t show</font></div><div><font class="yiv341162648Apple-style-span" face="Courier">show :: (Show a) =&gt; a -&gt; String</font></div></div><div><br></div><div>If you
 want to see the type of a "specific" show function, you need to find a way to "determine" its type. &nbsp;This is a slightly different function, but it's equivalent in types and semantics:</div><div><br></div><div><div><font class="yiv341162648Apple-style-span" face="Courier">Prelude&gt; :t \x -&gt; show x</font></div><div><font class="yiv341162648Apple-style-span" face="Courier">\x -&gt; show x :: (Show a) =&gt; a -&gt; String</font></div></div><div><br></div><div>Now we have a named argument, and we can constraint its type with an annotation:</div><div><br></div><div><div><font class="yiv341162648Apple-style-span" face="Courier">Prelude&gt; :t \x -&gt; show (x :: Int)</font></div><div><font class="yiv341162648Apple-style-span" face="Courier">\x -&gt; show (x :: Int) :: Int -&gt; String</font></div></div><div><br></div></div><br>-----Inline Attachment Follows-----<br><br><div
 class="plainMail">_______________________________________________<br>Haskell-Cafe mailing list<br><a ymailto="mailto:Haskell-Cafe@haskell.org" href="/mc/compose?to=Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br><a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br></div></blockquote></td></tr></table><br>