joinFirstTwo :: [(a, Integer, a)] -> (a, Integer, a) joinFirstTwo ((a1, a2, a3) : (b1, b2, b3) : _) = (a1, max a2 b2, b3) mix :: [[a]] -> [a] mix ((a1 : a2 : as) : (b1 : b2 : bs) : xs) = [a2, b1]