
On Tue, Nov 20, 2012 at 2:14 PM, John Wiegley
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
Data.Tuple already contains swap. Fairly obvious, but strangely missing.
compose :: [(a -> a)] -> a -> a compose = foldr (.) id
composeM :: [(a -> m a)] -> a -> m a composeM = foldr (<=<) return
I would actually consider these to fall beneath the "Fairbairn threshold". The composition of them is obvious, and the suggested names already exist commonly in a lot of third party code for all sorts of purposes. The pain of adoption plus the annoyance of trying to find them exceeds, to me, the utility of adding them. -Edward