
On Fri, 15 Jun 2012, Ivan Lazar Miljenovic wrote:
On 15 June 2012 17:59, Andreas Abel
wrote: Hi,
the module Data.Tuple offers a sad collection of 5 functions. Many standard functions are missing. For instance, I'd expect all the functions of
Data.Tuple.HT (package utility-th)
to be part of Data.Tuple, which are
mapPair :: (a -> c, b -> d) -> (a, b) -> (c, d) mapFst :: (a -> c) -> (a, b) -> (c, b) mapSnd :: (b -> c) -> (a, b) -> (a, c)
I believe these are covered by Control.Arrow...
Yes, they are covered by 'first', 'second' and '***'. But I decided to implement them in Data.Tuple.HT because I think that the use of the pair type in 'first' and friends is not the focus of the arrow functions. It would be easy for me to add mapFst3, mapSnd3.
-- swap :: (a, b) -> (b, a) -- swap is present in Data.Tuple
I have also added such functions in order to allow people to write code that works for many different GHC and 'base' versions.
P.S.: I have reimplemented all these functions for myself, because I use them, but I am puzzled why they are not in the standard library.
You can import my package without having to regret. I promise not to add new dependencies and that it will remain Haskell 98.