rere-0.1: src/RERE/Tuples.hs
{-# LANGUAGE CPP #-}
#if __GLASGOW_HASKELL__ >=704
{-# LANGUAGE Safe #-}
#elif __GLASGOW_HASKELL__ >=702
{-# LANGUAGE Trustworthy #-}
#endif
module RERE.Tuples where
-------------------------------------------------------------------------------
-- 3-tuples
-------------------------------------------------------------------------------
data Triple a b c = T !a !b !c
deriving (Eq, Ord)
bimap :: (b -> b') -> (c -> c') -> Triple a b c -> Triple a b' c'
bimap f g (T a b c) = T a (f b) (g c)
fstOf3 :: Triple a b c -> a
fstOf3 (T a _ _) = a
sndOf3 :: Triple a b c -> b
sndOf3 (T _ b _) = b
trdOf3 :: Triple a b c -> c
trdOf3 (T _ _ c) = c