--              Copyright (c) 1996 - 2004 Tim Barbour.

module ExtraTuples (
       fst3, snd3, thrd3, curry3, uncurry3
       ) where

fst3			:: (a,b,c) -> a
fst3 (x,y,z)		=  x

snd3			:: (a,b,c) -> b
snd3 (x,y,z)		=  y

thrd3                   :: (a,b,c) -> c
thrd3 (x,y,z)           =  z

curry3                   :: ((a, b, c) -> d) -> a -> b -> c -> d
curry3 f x y z           =  f (x, y, z)

uncurry3                 :: (a -> b -> c -> d) -> ((a, b, c) -> d)
uncurry3 f p             =  f (fst3 p) (snd3 p) (thrd3 p)
