    module Data.Array.Parallel.Prelude.Base.Tuple (
      tup2, tup3
    ) where

    import Data.Array.Parallel.Lifted.Combinators
    import Data.Array.Parallel.Lifted.Repr
    import Data.Array.Parallel.Lifted.Closure
    import Data.Array.Parallel.Lifted.PArray

    tup2 :: PA a -> PA b -> a :-> b :-> (a,b)
    {-# INLINE tup2 #-}
    tup2 pa pb = closure2 pa (,) (zipPA# pa pb)

    tup3 :: PA a -> PA b -> PA c -> a :-> b :-> c :-> (a,b,c)
    {-# INLINE tup3 #-}
    tup3 pa pb pc = closure3 pa pb (,,) (zip3PA# pa pb pc)