
Simon Peyton-Jones wrote:
I quite like that. ($$), that is. Better than (&)
Simon
| > we don't need new name suggestions at this point, but: | > | > Consider <**> :: f a -> f (a -> b) -> f b. | > | > That suggests <$$> :: f a -> (a -> b) -> f b by analogy,
I strongly prefer (#) . It's used by the diagrams [1] library example1 = circle 1 # fc red # lw 0 ||| circle 1 # fc green # lw 0 and by my own threepenny-gui package [2] example2 = do button <- UI.button # set text "Doorbell" status <- UI.span # set text "Thinking" # set style [("color","blue")] on UI.click button $ do element status # set text "Disturbed" A year ago, I might have opposed the proposal altogether, but diagrams has convinced me that it's quite useful. In particular, I think it's great when you want to put the emphasis on the argument and treat the functions as styling. For instance, in example2 , the focus is on the fact that status is a new span element, whereas the specific styling of the span is secondary. In my opinion, only (#) looks "right" for this purpose, though. I don't think it's a good idea to add it to the Prelude, but I would appreciate it in Data.Function or thelike. [1]: http://hackage.haskell.org/package/diagrams [2]: http://www.haskell.org/haskellwiki/Threepenny-gui Best regards, Heinrich Apfelmus -- http://apfelmus.nfshost.com