In case no one has already mentioned it, (<.>) = fmap.fmap, or more specifically, result.fmap (where 'result' comes from TypeCompose or DeepArrow). Usually I prefer this explicit style over ad hoc infix operators, as the explicit style illustrates and hints toward a more general situation, made up of compositions of first, second, result, fmap, etc. See <a href="http://conal.net/blog/posts/semantic-editor-combinators/">http://conal.net/blog/posts/semantic-editor-combinators/</a> .<br>
<br> - Conal<br><br><div class="gmail_quote">On Sun, Aug 1, 2010 at 6:52 AM, Maciej Marcin Piechotka <span dir="ltr"><<a href="mailto:uzytkownik2@gmail.com">uzytkownik2@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
The proposal is to add (<.>) function to Data.Functor/Control.Applicative:<br>
(<.>) :: (b -> c) -> (a -> f b) -> a -> f c<br>
f <.> g = fmap f . g -- (<.>) = (.) . fmap<br>
<br>
In intend it is related to <$> in the same way as (.) is related to $:<br>
(a . b . c) d = a $ b $ c $ d<br>
(a <.> b <.> c) d = a <$> b <$> c <$> d<br>
<br>
a is not specialized to f a to allow such chaining:<br>
const 1 <.> print <=< (read :: String -> Int) <.> readFile<br>
:: (Num t) => FilePath -> IO t<br>
<br>
Discussion deadline: 31th August 2010<br>
<br>
<br>_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/libraries" target="_blank">http://www.haskell.org/mailman/listinfo/libraries</a><br>
<br></blockquote></div><br>