Adding swap/compose functions to Data.Tuple and Data.Function

John Wiegley johnw at fpcomplete.com
Tue Nov 20 20:28:15 CET 2012


>>>>> Edward Kmett <ekmett at gmail.com> writes:

> Data.Tuple already contains swap.

Yeah, and I'm finding it just fine with Hoogle now.  I'm not sure how I was
led into thinking it didn't exist, but I had reached for it one day and my
hands came up empty.

>         compose :: [(a -> a)] -> a -> a
>         compose = foldr (.) id
   
>         composeM :: [(a -> m a)] -> a -> m a
>         composeM = foldr (<=<) return

> 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.

Fair enough.  It does seem that the idiom deserves a name, though, considering
how often I've come across it, but perhaps that ship has sailed.

-- 
John Wiegley
FP Complete                         Haskell tools, training and consulting
http://fpcomplete.com               johnw on #haskell/irc.freenode.net



More information about the Libraries mailing list