<div>Should library functions target Control.Category?  We write for Num, IsString, and ListLike.  Haskell overloads number literals and string literals, and awkwardly not List literals.  Should Haskell overload function application too?</div>

<div><br></div><div>How cool would it be to be able to leverage all of Haskell&#39;s libraries, and effectively none of the runtime, by implementing instances for literals and function application?  Say, for example, to generate a call graph, or make the language strict, or target LLVM more directly.  Anyone tried this?</div>

<div><br></div><div>Thanks,</div><div>Greg</div><div><br></div><div><br><div class="gmail_quote">On Sat, Oct 27, 2012 at 11:39 AM, Greg Fitzgerald <span dir="ltr">&lt;<a href="mailto:garious@gmail.com" target="_blank">garious@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>&gt; Alternatively: flip (foldr id)<br><div></div></div><div><br></div><div>Very cool, but...  </div><div><br></div>

<div>Prelude&gt; import qualified Data.Foldable as F</div><div><div>Prelude F&gt; :t F.foldr id</div>
</div><div>F.foldr id :: F.Foldable t =&gt; b -&gt; t (b -&gt; b) -&gt; b</div><div><br></div><div><br></div><div>{- Generalizing -}</div><div><br></div><div><div>Prelude F&gt; import qualified Control.Category as C</div>


</div><div>Prelude F C&gt; :t F.foldr (C..) C.id</div><div>F.foldr (C..) C.id :: (F.Foldable t, C.Category cat) =&gt; t (cat b b) -&gt; cat b b</div><div><br></div><div><br></div><div>{- Sneaky type-specialization -}</div>


<div><br></div><div><div>Prelude F C&gt; :t F.foldr C.id</div><div>F.foldr C.id :: F.Foldable t =&gt; b -&gt; t (b -&gt; b) -&gt; b</div></div><div class="HOEnZb"><div class="h5"><div><br></div><br><div class="gmail_quote">

On Sat, Oct 27, 2012 at 3:09 AM, Ross Paterson <span dir="ltr">&lt;<a href="mailto:ross@soi.city.ac.uk" target="_blank">ross@soi.city.ac.uk</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>On Fri, Oct 26, 2012 at 07:41:18PM +0100, Greg Fitzgerald wrote:<br>
&gt; I&#39;ve recently found myself using the expression: &quot;foldr (.) id&quot; to<br>
&gt; compose a list (or Foldable) of functions.  It&#39;s especially useful<br>
&gt; when I need to map a function over the list before composing.  Does<br>
&gt; this function, or the more general &quot;foldr fmap id&quot;, defined in a<br>
&gt; library anywhere?  I googled and hoogled, but no luck so far.<br>
<br>
</div></div>Alternatively: flip (foldr id)<br>
<div><div><br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">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></div></blockquote></div><br>
</div></div></blockquote></div><br></div>