{-# LANGUAGE DeriveFoldable #-}
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveTraversable #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE StrictData #-}

-- | Strict tuples.
module Data.Tuple.Strict
  ( T1 (..),
    T2 (..),
    sfst,
    ssnd,
    scurry,
    suncurry,
    sswap,
    T3 (..),
    T4 (..),
    T5 (..),
    T6 (..),
    T7 (..),
    T8 (..),
    T9 (..),
    T10 (..),
    T11 (..),
    T12 (..),
    T13 (..),
    T14 (..),
    T15 (..),
    T16 (..),
    T17 (..),
    T18 (..),
    T19 (..),
  )
where

import Data.Tuple.Strict.T1
import Data.Tuple.Strict.T10
import Data.Tuple.Strict.T11
import Data.Tuple.Strict.T12
import Data.Tuple.Strict.T13
import Data.Tuple.Strict.T14
import Data.Tuple.Strict.T15
import Data.Tuple.Strict.T16
import Data.Tuple.Strict.T17
import Data.Tuple.Strict.T18
import Data.Tuple.Strict.T19
import Data.Tuple.Strict.T2
import Data.Tuple.Strict.T3
import Data.Tuple.Strict.T4
import Data.Tuple.Strict.T5
import Data.Tuple.Strict.T6
import Data.Tuple.Strict.T7
import Data.Tuple.Strict.T8
import Data.Tuple.Strict.T9