In your case it is not a list, but actually a tuple. Tuples are heterogenous containers, so that is why different types may be inside them. However, swapping elements in tuple is impossible to be written in generic way, at least with standard Haskell. I suggest operating on data pointed by Bryan.