id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,difficulty,testcase,blockedby,blocking,related
7435,"Add swap and compose to the Prelude, or Tuple/List",JohnWiegley,,"{{{
    swap :: (a,b) -> (b,a)
    swap = snd &&& fst
}}}
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.",feature request,closed,normal,,libraries/base,7.6.1,wontfix,,,Unknown/Multiple,Unknown/Multiple,None/Unknown,Unknown,,,,
