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)