<div dir="ltr">Exactly! I'd be disappointed to see (.:) get enshrined in the base when it's such a special case: just one functor ((->) a), just one class (Functor), and just two levels deep. Once people learn the general patterns, they're easy to read & write and *much* more general & flexible. SeeĀ <a href="http://conal.net/blog/posts/semantic-editor-combinators">http://conal.net/blog/posts/semantic-editor-combinators</a> and the lens libraries.<div><br></div><div>-- Conal</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 17, 2016 at 2:14 PM, Tony Morris <span dir="ltr"><<a href="mailto:tonymorris@gmail.com" target="_blank">tonymorris@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<p>You'd generalise it to:</p>
<p>fmap . fmap :: (Functor f, Functor g) => (a -> b) -> f
(g a) -> f (g b)</p>
<p>And then, would you do the same for Traversable, Foldable and
Applicative?</p><div><div class="h5">
<br>
<div>On 18/08/16 03:43, Alex Belanger wrote:<br>
</div>
</div></div><blockquote type="cite"><div><div class="h5">
<div dir="ltr">Hi,
<div><br>
</div>
<div>Some of you might be familiar with (.:) = (.) . (.).</div>
<div><br>
</div>
<div>It has type :: (c -> d) -> (a -> b -> c) ->
a -> b -> d</div>
<div><br>
</div>
<div>It allows the composition of two functions, the first one,
accepting one operand, and the second, two operands.</div>
<div><br>
</div>
<div>This appears to be a very common pattern, referenced a bit
everywhere, almost always defined on lambdabot and found in
multiple codebases in the wild.</div>
<div><br>
</div>
<div>I'd like the know the general sentiment about this
operator, as well as how its inclusion in base, probably
Data.Function, would be perceived before I actually try to
make it happen.</div>
<div><br>
</div>
<div>Cheers,</div>
<div>Alex (nitrix).</div>
</div>
<br>
<fieldset></fieldset>
<br>
</div></div><pre>______________________________<wbr>_________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/haskell-<wbr>cafe</a>
Only members subscribed via the mailman list are allowed to post.</pre>
</blockquote>
<br>
</div>
<br>______________________________<wbr>_________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/haskell-<wbr>cafe</a><br>
Only members subscribed via the mailman list are allowed to post.<br></blockquote></div><br></div></div>