 
            On 20.11.2012 20:14, John Wiegley wrote:
Moving discussion from http://hackage.haskell.org/trac/ghc/ticket/7435:
I propose adding the following three functions to Data.Tuple and Data.Function, respectively:
swap :: (a,b) -> (b,a) swap = snd &&& fst
+1
Fairly obvious, but strangely missing.
compose :: [(a -> a)] -> a -> a compose = foldr (.) id
composeM :: [(a -> m a)] -> a -> m a composeM = foldr (<=<) return
This can be done with Endo, of course, but the result is awkward. The idiom of composing a list of endomorphisms occurs often enough that you can Google for it.
+0.5 (a bit in doubt whether these are common enough). -- Andreas Abel <>< Du bist der geliebte Mensch. Theoretical Computer Science, University of Munich Oettingenstr. 67, D-80538 Munich, GERMANY andreas.abel@ifi.lmu.de http://www2.tcs.ifi.lmu.de/~abel/