I'm trying to get a grip on how tuples work in Haskell.

I came across this type constructor `leftRight :: (Either a b -> c) -> (a -> c, b -> c)` and I'm struggling to see what it does.

So we have `(Either a b -> c)`which means that either a is applied to c or b is applied to c. But the output is a tuple?
Does that mean that it splits the function so that left side of the tuple takes in argument given at a and right side takes argument given at right?
How would this look in code?