module Data.Tuple.Ext ( fst3 , snd3 , thd3 , third3 ) where fst3 :: (a, b, c) -> a fst3 :: (a, b, c) -> a fst3 (a x, b _, c _) = a x snd3 :: (a, b, c) -> b snd3 :: (a, b, c) -> b snd3 (a _, b x, c _) = b x thd3 :: (a, b, c) -> c thd3 :: (a, b, c) -> c thd3 (a _, b _, c x) = c x third3 :: (t -> c) -> (a, b, t) -> (a, b, c) third3 t -> c f (a x, b y, t z) = (a x, b y, t -> c f t z)