<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'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"><<a href="mailto:garious@gmail.com" target="_blank">garious@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>> Alternatively: flip (foldr id)<br><div></div></div><div><br></div><div>Very cool, but... </div><div><br></div>
<div>Prelude> import qualified Data.Foldable as F</div><div><div>Prelude F> :t F.foldr id</div>
</div><div>F.foldr id :: F.Foldable t => b -> t (b -> b) -> b</div><div><br></div><div><br></div><div>{- Generalizing -}</div><div><br></div><div><div>Prelude F> import qualified Control.Category as C</div>
</div><div>Prelude F C> :t F.foldr (C..) C.id</div><div>F.foldr (C..) C.id :: (F.Foldable t, C.Category cat) => t (cat b b) -> cat b b</div><div><br></div><div><br></div><div>{- Sneaky type-specialization -}</div>
<div><br></div><div><div>Prelude F C> :t F.foldr C.id</div><div>F.foldr C.id :: F.Foldable t => b -> t (b -> b) -> 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"><<a href="mailto:ross@soi.city.ac.uk" target="_blank">ross@soi.city.ac.uk</a>></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>
> I've recently found myself using the expression: "foldr (.) id" to<br>
> compose a list (or Foldable) of functions. It's especially useful<br>
> when I need to map a function over the list before composing. Does<br>
> this function, or the more general "foldr fmap id", defined in a<br>
> 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>