{-# LANGUAGE Safe #-} {- arch-tag: Tuple utilities main file Copyright (c) 2004-2011 John Goerzen All rights reserved. For license and copyright information, see the file LICENSE. -} {- | Module : Data.Tuple.Utils Copyright : Copyright (C) 2004-2011 John Goerzen SPDX-License-Identifier: BSD-3-Clause Stability : stable Portability: portable This module provides various helpful utilities for dealing with tuples. Written by Neil Mitchell. -} module Data.Tuple.Utils( -- * Construction dup, triple, -- * Extraction fst3, snd3, thd3 ) where -- | Construct a pair by duplication of a single value -- -- @since 1.4.3.0 dup :: a -> (a,a) dup a = (a,a) -- | Construct a 3-tuple from a single value -- -- @since 1.4.3.0 triple :: a -> (a,a,a) triple a = (a,a,a) -- | Take the first item out of a 3 element tuple fst3 :: (a,b,c) -> a fst3 (a,_,_) = a -- | Take the second item out of a 3 element tuple snd3 :: (a,b,c) -> b snd3 (_,b,_) = b -- | Take the third item out of a 3 element tuple thd3 :: (a,b,c) -> c thd3 (_,_,c) = c