module Tuple where data Pair a b = Pair a b deriving (Int -> Pair a b -> ShowS [Pair a b] -> ShowS Pair a b -> String (Int -> Pair a b -> ShowS) -> (Pair a b -> String) -> ([Pair a b] -> ShowS) -> Show (Pair a b) forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a forall a b. (Show a, Show b) => Int -> Pair a b -> ShowS forall a b. (Show a, Show b) => [Pair a b] -> ShowS forall a b. (Show a, Show b) => Pair a b -> String $cshowsPrec :: forall a b. (Show a, Show b) => Int -> Pair a b -> ShowS showsPrec :: Int -> Pair a b -> ShowS $cshow :: forall a b. (Show a, Show b) => Pair a b -> String show :: Pair a b -> String $cshowList :: forall a b. (Show a, Show b) => [Pair a b] -> ShowS showList :: [Pair a b] -> ShowS Show) ; fst :: Pair a b -> a ; fst :: forall a b. Pair a b -> a fst ( Pair a a b _ ) = a a ; snd :: Pair a b -> b ; snd :: forall a b. Pair a b -> b snd ( Pair a _ b b ) = b b ;