module Data.Adaptive.Tuple where
import Prelude hiding (curry, uncurry, fst, snd)
import qualified Prelude
import Data.Int
import Data.Word
class AdaptPair a b where
data Pair a b
fst :: Pair a b -> a
snd :: Pair a b -> b
curry :: (Pair a b -> c) -> a -> b -> c
pair :: AdaptPair a b => a -> b -> Pair a b
pair = curry id
uncurry :: AdaptPair a b => (a -> b -> c) -> (Pair a b -> c)
uncurry f p = f (fst p) (snd p)
fromPair :: AdaptPair a b => Pair a b -> (a, b)
fromPair = uncurry (,)
toPair :: AdaptPair a b => (a,b) -> Pair a b
toPair (a,b) = pair a b
instance (Bounded a, Bounded b, AdaptPair a b) => Bounded (Pair a b) where
minBound = pair minBound minBound
maxBound = pair maxBound maxBound
instance (Eq a, Eq b, AdaptPair a b) => Eq (Pair a b) where
p == q = fst p == fst q && snd p == snd q
instance (Ord a, Ord b, AdaptPair a b) => Ord (Pair a b) where
compare p q =
compare (fst p) (fst q)
`compare`
compare (snd p) (snd q)
instance (Show a, Show b, AdaptPair a b) => Show (Pair a b) where
show p = "Pair " ++ show (fst p) ++ " "++ show (snd p)
instance AdaptPair () () where
data Pair () () = PUnit
fst PUnit = ()
snd PUnit = ()
curry f _ _ = f PUnit
instance AdaptPair Bool Bool where
data Pair Bool Bool = PBool !Int !Int
fst (PBool x _) = Prelude.toEnum x
snd (PBool _ x) = Prelude.toEnum x
curry f x y = f (PBool (Prelude.fromEnum x) (Prelude.fromEnum y))
instance AdaptPair Int Int where
data Pair Int Int = PairIntInt !Int !Int
fst (PairIntInt a _) = a
snd (PairIntInt _ b) = b
curry f x y = f (PairIntInt x y)
instance AdaptPair Int Integer where
data Pair Int Integer = PairIntInteger !Int !Integer
fst (PairIntInteger a _) = a
snd (PairIntInteger _ b) = b
curry f x y = f (PairIntInteger x y)
instance AdaptPair Int Int8 where
data Pair Int Int8 = PairIntInt8 !Int !Int8
fst (PairIntInt8 a _) = a
snd (PairIntInt8 _ b) = b
curry f x y = f (PairIntInt8 x y)
instance AdaptPair Int Int16 where
data Pair Int Int16 = PairIntInt16 !Int !Int16
fst (PairIntInt16 a _) = a
snd (PairIntInt16 _ b) = b
curry f x y = f (PairIntInt16 x y)
instance AdaptPair Int Int32 where
data Pair Int Int32 = PairIntInt32 !Int !Int32
fst (PairIntInt32 a _) = a
snd (PairIntInt32 _ b) = b
curry f x y = f (PairIntInt32 x y)
instance AdaptPair Int Int64 where
data Pair Int Int64 = PairIntInt64 !Int !Int64
fst (PairIntInt64 a _) = a
snd (PairIntInt64 _ b) = b
curry f x y = f (PairIntInt64 x y)
instance AdaptPair Int Word where
data Pair Int Word = PairIntWord !Int !Word
fst (PairIntWord a _) = a
snd (PairIntWord _ b) = b
curry f x y = f (PairIntWord x y)
instance AdaptPair Int Word8 where
data Pair Int Word8 = PairIntWord8 !Int !Word8
fst (PairIntWord8 a _) = a
snd (PairIntWord8 _ b) = b
curry f x y = f (PairIntWord8 x y)
instance AdaptPair Int Word16 where
data Pair Int Word16 = PairIntWord16 !Int !Word16
fst (PairIntWord16 a _) = a
snd (PairIntWord16 _ b) = b
curry f x y = f (PairIntWord16 x y)
instance AdaptPair Int Word32 where
data Pair Int Word32 = PairIntWord32 !Int !Word32
fst (PairIntWord32 a _) = a
snd (PairIntWord32 _ b) = b
curry f x y = f (PairIntWord32 x y)
instance AdaptPair Int Word64 where
data Pair Int Word64 = PairIntWord64 !Int !Word64
fst (PairIntWord64 a _) = a
snd (PairIntWord64 _ b) = b
curry f x y = f (PairIntWord64 x y)
instance AdaptPair Int Double where
data Pair Int Double = PairIntDouble !Int !Double
fst (PairIntDouble a _) = a
snd (PairIntDouble _ b) = b
curry f x y = f (PairIntDouble x y)
instance AdaptPair Int Float where
data Pair Int Float = PairIntFloat !Int !Float
fst (PairIntFloat a _) = a
snd (PairIntFloat _ b) = b
curry f x y = f (PairIntFloat x y)
instance AdaptPair Int Char where
data Pair Int Char = PairIntChar !Int !Char
fst (PairIntChar a _) = a
snd (PairIntChar _ b) = b
curry f x y = f (PairIntChar x y)
instance AdaptPair Integer Int where
data Pair Integer Int = PairIntegerInt !Integer !Int
fst (PairIntegerInt a _) = a
snd (PairIntegerInt _ b) = b
curry f x y = f (PairIntegerInt x y)
instance AdaptPair Integer Integer where
data Pair Integer Integer = PairIntegerInteger !Integer !Integer
fst (PairIntegerInteger a _) = a
snd (PairIntegerInteger _ b) = b
curry f x y = f (PairIntegerInteger x y)
instance AdaptPair Integer Int8 where
data Pair Integer Int8 = PairIntegerInt8 !Integer !Int8
fst (PairIntegerInt8 a _) = a
snd (PairIntegerInt8 _ b) = b
curry f x y = f (PairIntegerInt8 x y)
instance AdaptPair Integer Int16 where
data Pair Integer Int16 = PairIntegerInt16 !Integer !Int16
fst (PairIntegerInt16 a _) = a
snd (PairIntegerInt16 _ b) = b
curry f x y = f (PairIntegerInt16 x y)
instance AdaptPair Integer Int32 where
data Pair Integer Int32 = PairIntegerInt32 !Integer !Int32
fst (PairIntegerInt32 a _) = a
snd (PairIntegerInt32 _ b) = b
curry f x y = f (PairIntegerInt32 x y)
instance AdaptPair Integer Int64 where
data Pair Integer Int64 = PairIntegerInt64 !Integer !Int64
fst (PairIntegerInt64 a _) = a
snd (PairIntegerInt64 _ b) = b
curry f x y = f (PairIntegerInt64 x y)
instance AdaptPair Integer Word where
data Pair Integer Word = PairIntegerWord !Integer !Word
fst (PairIntegerWord a _) = a
snd (PairIntegerWord _ b) = b
curry f x y = f (PairIntegerWord x y)
instance AdaptPair Integer Word8 where
data Pair Integer Word8 = PairIntegerWord8 !Integer !Word8
fst (PairIntegerWord8 a _) = a
snd (PairIntegerWord8 _ b) = b
curry f x y = f (PairIntegerWord8 x y)
instance AdaptPair Integer Word16 where
data Pair Integer Word16 = PairIntegerWord16 !Integer !Word16
fst (PairIntegerWord16 a _) = a
snd (PairIntegerWord16 _ b) = b
curry f x y = f (PairIntegerWord16 x y)
instance AdaptPair Integer Word32 where
data Pair Integer Word32 = PairIntegerWord32 !Integer !Word32
fst (PairIntegerWord32 a _) = a
snd (PairIntegerWord32 _ b) = b
curry f x y = f (PairIntegerWord32 x y)
instance AdaptPair Integer Word64 where
data Pair Integer Word64 = PairIntegerWord64 !Integer !Word64
fst (PairIntegerWord64 a _) = a
snd (PairIntegerWord64 _ b) = b
curry f x y = f (PairIntegerWord64 x y)
instance AdaptPair Integer Double where
data Pair Integer Double = PairIntegerDouble !Integer !Double
fst (PairIntegerDouble a _) = a
snd (PairIntegerDouble _ b) = b
curry f x y = f (PairIntegerDouble x y)
instance AdaptPair Integer Float where
data Pair Integer Float = PairIntegerFloat !Integer !Float
fst (PairIntegerFloat a _) = a
snd (PairIntegerFloat _ b) = b
curry f x y = f (PairIntegerFloat x y)
instance AdaptPair Integer Char where
data Pair Integer Char = PairIntegerChar !Integer !Char
fst (PairIntegerChar a _) = a
snd (PairIntegerChar _ b) = b
curry f x y = f (PairIntegerChar x y)
instance AdaptPair Int8 Int where
data Pair Int8 Int = PairInt8Int !Int8 !Int
fst (PairInt8Int a _) = a
snd (PairInt8Int _ b) = b
curry f x y = f (PairInt8Int x y)
instance AdaptPair Int8 Integer where
data Pair Int8 Integer = PairInt8Integer !Int8 !Integer
fst (PairInt8Integer a _) = a
snd (PairInt8Integer _ b) = b
curry f x y = f (PairInt8Integer x y)
instance AdaptPair Int8 Int8 where
data Pair Int8 Int8 = PairInt8Int8 !Int8 !Int8
fst (PairInt8Int8 a _) = a
snd (PairInt8Int8 _ b) = b
curry f x y = f (PairInt8Int8 x y)
instance AdaptPair Int8 Int16 where
data Pair Int8 Int16 = PairInt8Int16 !Int8 !Int16
fst (PairInt8Int16 a _) = a
snd (PairInt8Int16 _ b) = b
curry f x y = f (PairInt8Int16 x y)
instance AdaptPair Int8 Int32 where
data Pair Int8 Int32 = PairInt8Int32 !Int8 !Int32
fst (PairInt8Int32 a _) = a
snd (PairInt8Int32 _ b) = b
curry f x y = f (PairInt8Int32 x y)
instance AdaptPair Int8 Int64 where
data Pair Int8 Int64 = PairInt8Int64 !Int8 !Int64
fst (PairInt8Int64 a _) = a
snd (PairInt8Int64 _ b) = b
curry f x y = f (PairInt8Int64 x y)
instance AdaptPair Int8 Word where
data Pair Int8 Word = PairInt8Word !Int8 !Word
fst (PairInt8Word a _) = a
snd (PairInt8Word _ b) = b
curry f x y = f (PairInt8Word x y)
instance AdaptPair Int8 Word8 where
data Pair Int8 Word8 = PairInt8Word8 !Int8 !Word8
fst (PairInt8Word8 a _) = a
snd (PairInt8Word8 _ b) = b
curry f x y = f (PairInt8Word8 x y)
instance AdaptPair Int8 Word16 where
data Pair Int8 Word16 = PairInt8Word16 !Int8 !Word16
fst (PairInt8Word16 a _) = a
snd (PairInt8Word16 _ b) = b
curry f x y = f (PairInt8Word16 x y)
instance AdaptPair Int8 Word32 where
data Pair Int8 Word32 = PairInt8Word32 !Int8 !Word32
fst (PairInt8Word32 a _) = a
snd (PairInt8Word32 _ b) = b
curry f x y = f (PairInt8Word32 x y)
instance AdaptPair Int8 Word64 where
data Pair Int8 Word64 = PairInt8Word64 !Int8 !Word64
fst (PairInt8Word64 a _) = a
snd (PairInt8Word64 _ b) = b
curry f x y = f (PairInt8Word64 x y)
instance AdaptPair Int8 Double where
data Pair Int8 Double = PairInt8Double !Int8 !Double
fst (PairInt8Double a _) = a
snd (PairInt8Double _ b) = b
curry f x y = f (PairInt8Double x y)
instance AdaptPair Int8 Float where
data Pair Int8 Float = PairInt8Float !Int8 !Float
fst (PairInt8Float a _) = a
snd (PairInt8Float _ b) = b
curry f x y = f (PairInt8Float x y)
instance AdaptPair Int8 Char where
data Pair Int8 Char = PairInt8Char !Int8 !Char
fst (PairInt8Char a _) = a
snd (PairInt8Char _ b) = b
curry f x y = f (PairInt8Char x y)
instance AdaptPair Int16 Int where
data Pair Int16 Int = PairInt16Int !Int16 !Int
fst (PairInt16Int a _) = a
snd (PairInt16Int _ b) = b
curry f x y = f (PairInt16Int x y)
instance AdaptPair Int16 Integer where
data Pair Int16 Integer = PairInt16Integer !Int16 !Integer
fst (PairInt16Integer a _) = a
snd (PairInt16Integer _ b) = b
curry f x y = f (PairInt16Integer x y)
instance AdaptPair Int16 Int8 where
data Pair Int16 Int8 = PairInt16Int8 !Int16 !Int8
fst (PairInt16Int8 a _) = a
snd (PairInt16Int8 _ b) = b
curry f x y = f (PairInt16Int8 x y)
instance AdaptPair Int16 Int16 where
data Pair Int16 Int16 = PairInt16Int16 !Int16 !Int16
fst (PairInt16Int16 a _) = a
snd (PairInt16Int16 _ b) = b
curry f x y = f (PairInt16Int16 x y)
instance AdaptPair Int16 Int32 where
data Pair Int16 Int32 = PairInt16Int32 !Int16 !Int32
fst (PairInt16Int32 a _) = a
snd (PairInt16Int32 _ b) = b
curry f x y = f (PairInt16Int32 x y)
instance AdaptPair Int16 Int64 where
data Pair Int16 Int64 = PairInt16Int64 !Int16 !Int64
fst (PairInt16Int64 a _) = a
snd (PairInt16Int64 _ b) = b
curry f x y = f (PairInt16Int64 x y)
instance AdaptPair Int16 Word where
data Pair Int16 Word = PairInt16Word !Int16 !Word
fst (PairInt16Word a _) = a
snd (PairInt16Word _ b) = b
curry f x y = f (PairInt16Word x y)
instance AdaptPair Int16 Word8 where
data Pair Int16 Word8 = PairInt16Word8 !Int16 !Word8
fst (PairInt16Word8 a _) = a
snd (PairInt16Word8 _ b) = b
curry f x y = f (PairInt16Word8 x y)
instance AdaptPair Int16 Word16 where
data Pair Int16 Word16 = PairInt16Word16 !Int16 !Word16
fst (PairInt16Word16 a _) = a
snd (PairInt16Word16 _ b) = b
curry f x y = f (PairInt16Word16 x y)
instance AdaptPair Int16 Word32 where
data Pair Int16 Word32 = PairInt16Word32 !Int16 !Word32
fst (PairInt16Word32 a _) = a
snd (PairInt16Word32 _ b) = b
curry f x y = f (PairInt16Word32 x y)
instance AdaptPair Int16 Word64 where
data Pair Int16 Word64 = PairInt16Word64 !Int16 !Word64
fst (PairInt16Word64 a _) = a
snd (PairInt16Word64 _ b) = b
curry f x y = f (PairInt16Word64 x y)
instance AdaptPair Int16 Double where
data Pair Int16 Double = PairInt16Double !Int16 !Double
fst (PairInt16Double a _) = a
snd (PairInt16Double _ b) = b
curry f x y = f (PairInt16Double x y)
instance AdaptPair Int16 Float where
data Pair Int16 Float = PairInt16Float !Int16 !Float
fst (PairInt16Float a _) = a
snd (PairInt16Float _ b) = b
curry f x y = f (PairInt16Float x y)
instance AdaptPair Int16 Char where
data Pair Int16 Char = PairInt16Char !Int16 !Char
fst (PairInt16Char a _) = a
snd (PairInt16Char _ b) = b
curry f x y = f (PairInt16Char x y)
instance AdaptPair Int32 Int where
data Pair Int32 Int = PairInt32Int !Int32 !Int
fst (PairInt32Int a _) = a
snd (PairInt32Int _ b) = b
curry f x y = f (PairInt32Int x y)
instance AdaptPair Int32 Integer where
data Pair Int32 Integer = PairInt32Integer !Int32 !Integer
fst (PairInt32Integer a _) = a
snd (PairInt32Integer _ b) = b
curry f x y = f (PairInt32Integer x y)
instance AdaptPair Int32 Int8 where
data Pair Int32 Int8 = PairInt32Int8 !Int32 !Int8
fst (PairInt32Int8 a _) = a
snd (PairInt32Int8 _ b) = b
curry f x y = f (PairInt32Int8 x y)
instance AdaptPair Int32 Int16 where
data Pair Int32 Int16 = PairInt32Int16 !Int32 !Int16
fst (PairInt32Int16 a _) = a
snd (PairInt32Int16 _ b) = b
curry f x y = f (PairInt32Int16 x y)
instance AdaptPair Int32 Int32 where
data Pair Int32 Int32 = PairInt32Int32 !Int32 !Int32
fst (PairInt32Int32 a _) = a
snd (PairInt32Int32 _ b) = b
curry f x y = f (PairInt32Int32 x y)
instance AdaptPair Int32 Int64 where
data Pair Int32 Int64 = PairInt32Int64 !Int32 !Int64
fst (PairInt32Int64 a _) = a
snd (PairInt32Int64 _ b) = b
curry f x y = f (PairInt32Int64 x y)
instance AdaptPair Int32 Word where
data Pair Int32 Word = PairInt32Word !Int32 !Word
fst (PairInt32Word a _) = a
snd (PairInt32Word _ b) = b
curry f x y = f (PairInt32Word x y)
instance AdaptPair Int32 Word8 where
data Pair Int32 Word8 = PairInt32Word8 !Int32 !Word8
fst (PairInt32Word8 a _) = a
snd (PairInt32Word8 _ b) = b
curry f x y = f (PairInt32Word8 x y)
instance AdaptPair Int32 Word16 where
data Pair Int32 Word16 = PairInt32Word16 !Int32 !Word16
fst (PairInt32Word16 a _) = a
snd (PairInt32Word16 _ b) = b
curry f x y = f (PairInt32Word16 x y)
instance AdaptPair Int32 Word32 where
data Pair Int32 Word32 = PairInt32Word32 !Int32 !Word32
fst (PairInt32Word32 a _) = a
snd (PairInt32Word32 _ b) = b
curry f x y = f (PairInt32Word32 x y)
instance AdaptPair Int32 Word64 where
data Pair Int32 Word64 = PairInt32Word64 !Int32 !Word64
fst (PairInt32Word64 a _) = a
snd (PairInt32Word64 _ b) = b
curry f x y = f (PairInt32Word64 x y)
instance AdaptPair Int32 Double where
data Pair Int32 Double = PairInt32Double !Int32 !Double
fst (PairInt32Double a _) = a
snd (PairInt32Double _ b) = b
curry f x y = f (PairInt32Double x y)
instance AdaptPair Int32 Float where
data Pair Int32 Float = PairInt32Float !Int32 !Float
fst (PairInt32Float a _) = a
snd (PairInt32Float _ b) = b
curry f x y = f (PairInt32Float x y)
instance AdaptPair Int32 Char where
data Pair Int32 Char = PairInt32Char !Int32 !Char
fst (PairInt32Char a _) = a
snd (PairInt32Char _ b) = b
curry f x y = f (PairInt32Char x y)
instance AdaptPair Int64 Int where
data Pair Int64 Int = PairInt64Int !Int64 !Int
fst (PairInt64Int a _) = a
snd (PairInt64Int _ b) = b
curry f x y = f (PairInt64Int x y)
instance AdaptPair Int64 Integer where
data Pair Int64 Integer = PairInt64Integer !Int64 !Integer
fst (PairInt64Integer a _) = a
snd (PairInt64Integer _ b) = b
curry f x y = f (PairInt64Integer x y)
instance AdaptPair Int64 Int8 where
data Pair Int64 Int8 = PairInt64Int8 !Int64 !Int8
fst (PairInt64Int8 a _) = a
snd (PairInt64Int8 _ b) = b
curry f x y = f (PairInt64Int8 x y)
instance AdaptPair Int64 Int16 where
data Pair Int64 Int16 = PairInt64Int16 !Int64 !Int16
fst (PairInt64Int16 a _) = a
snd (PairInt64Int16 _ b) = b
curry f x y = f (PairInt64Int16 x y)
instance AdaptPair Int64 Int32 where
data Pair Int64 Int32 = PairInt64Int32 !Int64 !Int32
fst (PairInt64Int32 a _) = a
snd (PairInt64Int32 _ b) = b
curry f x y = f (PairInt64Int32 x y)
instance AdaptPair Int64 Int64 where
data Pair Int64 Int64 = PairInt64Int64 !Int64 !Int64
fst (PairInt64Int64 a _) = a
snd (PairInt64Int64 _ b) = b
curry f x y = f (PairInt64Int64 x y)
instance AdaptPair Int64 Word where
data Pair Int64 Word = PairInt64Word !Int64 !Word
fst (PairInt64Word a _) = a
snd (PairInt64Word _ b) = b
curry f x y = f (PairInt64Word x y)
instance AdaptPair Int64 Word8 where
data Pair Int64 Word8 = PairInt64Word8 !Int64 !Word8
fst (PairInt64Word8 a _) = a
snd (PairInt64Word8 _ b) = b
curry f x y = f (PairInt64Word8 x y)
instance AdaptPair Int64 Word16 where
data Pair Int64 Word16 = PairInt64Word16 !Int64 !Word16
fst (PairInt64Word16 a _) = a
snd (PairInt64Word16 _ b) = b
curry f x y = f (PairInt64Word16 x y)
instance AdaptPair Int64 Word32 where
data Pair Int64 Word32 = PairInt64Word32 !Int64 !Word32
fst (PairInt64Word32 a _) = a
snd (PairInt64Word32 _ b) = b
curry f x y = f (PairInt64Word32 x y)
instance AdaptPair Int64 Word64 where
data Pair Int64 Word64 = PairInt64Word64 !Int64 !Word64
fst (PairInt64Word64 a _) = a
snd (PairInt64Word64 _ b) = b
curry f x y = f (PairInt64Word64 x y)
instance AdaptPair Int64 Double where
data Pair Int64 Double = PairInt64Double !Int64 !Double
fst (PairInt64Double a _) = a
snd (PairInt64Double _ b) = b
curry f x y = f (PairInt64Double x y)
instance AdaptPair Int64 Float where
data Pair Int64 Float = PairInt64Float !Int64 !Float
fst (PairInt64Float a _) = a
snd (PairInt64Float _ b) = b
curry f x y = f (PairInt64Float x y)
instance AdaptPair Int64 Char where
data Pair Int64 Char = PairInt64Char !Int64 !Char
fst (PairInt64Char a _) = a
snd (PairInt64Char _ b) = b
curry f x y = f (PairInt64Char x y)
instance AdaptPair Word Int where
data Pair Word Int = PairWordInt !Word !Int
fst (PairWordInt a _) = a
snd (PairWordInt _ b) = b
curry f x y = f (PairWordInt x y)
instance AdaptPair Word Integer where
data Pair Word Integer = PairWordInteger !Word !Integer
fst (PairWordInteger a _) = a
snd (PairWordInteger _ b) = b
curry f x y = f (PairWordInteger x y)
instance AdaptPair Word Int8 where
data Pair Word Int8 = PairWordInt8 !Word !Int8
fst (PairWordInt8 a _) = a
snd (PairWordInt8 _ b) = b
curry f x y = f (PairWordInt8 x y)
instance AdaptPair Word Int16 where
data Pair Word Int16 = PairWordInt16 !Word !Int16
fst (PairWordInt16 a _) = a
snd (PairWordInt16 _ b) = b
curry f x y = f (PairWordInt16 x y)
instance AdaptPair Word Int32 where
data Pair Word Int32 = PairWordInt32 !Word !Int32
fst (PairWordInt32 a _) = a
snd (PairWordInt32 _ b) = b
curry f x y = f (PairWordInt32 x y)
instance AdaptPair Word Int64 where
data Pair Word Int64 = PairWordInt64 !Word !Int64
fst (PairWordInt64 a _) = a
snd (PairWordInt64 _ b) = b
curry f x y = f (PairWordInt64 x y)
instance AdaptPair Word Word where
data Pair Word Word = PairWordWord !Word !Word
fst (PairWordWord a _) = a
snd (PairWordWord _ b) = b
curry f x y = f (PairWordWord x y)
instance AdaptPair Word Word8 where
data Pair Word Word8 = PairWordWord8 !Word !Word8
fst (PairWordWord8 a _) = a
snd (PairWordWord8 _ b) = b
curry f x y = f (PairWordWord8 x y)
instance AdaptPair Word Word16 where
data Pair Word Word16 = PairWordWord16 !Word !Word16
fst (PairWordWord16 a _) = a
snd (PairWordWord16 _ b) = b
curry f x y = f (PairWordWord16 x y)
instance AdaptPair Word Word32 where
data Pair Word Word32 = PairWordWord32 !Word !Word32
fst (PairWordWord32 a _) = a
snd (PairWordWord32 _ b) = b
curry f x y = f (PairWordWord32 x y)
instance AdaptPair Word Word64 where
data Pair Word Word64 = PairWordWord64 !Word !Word64
fst (PairWordWord64 a _) = a
snd (PairWordWord64 _ b) = b
curry f x y = f (PairWordWord64 x y)
instance AdaptPair Word Double where
data Pair Word Double = PairWordDouble !Word !Double
fst (PairWordDouble a _) = a
snd (PairWordDouble _ b) = b
curry f x y = f (PairWordDouble x y)
instance AdaptPair Word Float where
data Pair Word Float = PairWordFloat !Word !Float
fst (PairWordFloat a _) = a
snd (PairWordFloat _ b) = b
curry f x y = f (PairWordFloat x y)
instance AdaptPair Word Char where
data Pair Word Char = PairWordChar !Word !Char
fst (PairWordChar a _) = a
snd (PairWordChar _ b) = b
curry f x y = f (PairWordChar x y)
instance AdaptPair Word8 Int where
data Pair Word8 Int = PairWord8Int !Word8 !Int
fst (PairWord8Int a _) = a
snd (PairWord8Int _ b) = b
curry f x y = f (PairWord8Int x y)
instance AdaptPair Word8 Integer where
data Pair Word8 Integer = PairWord8Integer !Word8 !Integer
fst (PairWord8Integer a _) = a
snd (PairWord8Integer _ b) = b
curry f x y = f (PairWord8Integer x y)
instance AdaptPair Word8 Int8 where
data Pair Word8 Int8 = PairWord8Int8 !Word8 !Int8
fst (PairWord8Int8 a _) = a
snd (PairWord8Int8 _ b) = b
curry f x y = f (PairWord8Int8 x y)
instance AdaptPair Word8 Int16 where
data Pair Word8 Int16 = PairWord8Int16 !Word8 !Int16
fst (PairWord8Int16 a _) = a
snd (PairWord8Int16 _ b) = b
curry f x y = f (PairWord8Int16 x y)
instance AdaptPair Word8 Int32 where
data Pair Word8 Int32 = PairWord8Int32 !Word8 !Int32
fst (PairWord8Int32 a _) = a
snd (PairWord8Int32 _ b) = b
curry f x y = f (PairWord8Int32 x y)
instance AdaptPair Word8 Int64 where
data Pair Word8 Int64 = PairWord8Int64 !Word8 !Int64
fst (PairWord8Int64 a _) = a
snd (PairWord8Int64 _ b) = b
curry f x y = f (PairWord8Int64 x y)
instance AdaptPair Word8 Word where
data Pair Word8 Word = PairWord8Word !Word8 !Word
fst (PairWord8Word a _) = a
snd (PairWord8Word _ b) = b
curry f x y = f (PairWord8Word x y)
instance AdaptPair Word8 Word8 where
data Pair Word8 Word8 = PairWord8Word8 !Word8 !Word8
fst (PairWord8Word8 a _) = a
snd (PairWord8Word8 _ b) = b
curry f x y = f (PairWord8Word8 x y)
instance AdaptPair Word8 Word16 where
data Pair Word8 Word16 = PairWord8Word16 !Word8 !Word16
fst (PairWord8Word16 a _) = a
snd (PairWord8Word16 _ b) = b
curry f x y = f (PairWord8Word16 x y)
instance AdaptPair Word8 Word32 where
data Pair Word8 Word32 = PairWord8Word32 !Word8 !Word32
fst (PairWord8Word32 a _) = a
snd (PairWord8Word32 _ b) = b
curry f x y = f (PairWord8Word32 x y)
instance AdaptPair Word8 Word64 where
data Pair Word8 Word64 = PairWord8Word64 !Word8 !Word64
fst (PairWord8Word64 a _) = a
snd (PairWord8Word64 _ b) = b
curry f x y = f (PairWord8Word64 x y)
instance AdaptPair Word8 Double where
data Pair Word8 Double = PairWord8Double !Word8 !Double
fst (PairWord8Double a _) = a
snd (PairWord8Double _ b) = b
curry f x y = f (PairWord8Double x y)
instance AdaptPair Word8 Float where
data Pair Word8 Float = PairWord8Float !Word8 !Float
fst (PairWord8Float a _) = a
snd (PairWord8Float _ b) = b
curry f x y = f (PairWord8Float x y)
instance AdaptPair Word8 Char where
data Pair Word8 Char = PairWord8Char !Word8 !Char
fst (PairWord8Char a _) = a
snd (PairWord8Char _ b) = b
curry f x y = f (PairWord8Char x y)
instance AdaptPair Word16 Int where
data Pair Word16 Int = PairWord16Int !Word16 !Int
fst (PairWord16Int a _) = a
snd (PairWord16Int _ b) = b
curry f x y = f (PairWord16Int x y)
instance AdaptPair Word16 Integer where
data Pair Word16 Integer = PairWord16Integer !Word16 !Integer
fst (PairWord16Integer a _) = a
snd (PairWord16Integer _ b) = b
curry f x y = f (PairWord16Integer x y)
instance AdaptPair Word16 Int8 where
data Pair Word16 Int8 = PairWord16Int8 !Word16 !Int8
fst (PairWord16Int8 a _) = a
snd (PairWord16Int8 _ b) = b
curry f x y = f (PairWord16Int8 x y)
instance AdaptPair Word16 Int16 where
data Pair Word16 Int16 = PairWord16Int16 !Word16 !Int16
fst (PairWord16Int16 a _) = a
snd (PairWord16Int16 _ b) = b
curry f x y = f (PairWord16Int16 x y)
instance AdaptPair Word16 Int32 where
data Pair Word16 Int32 = PairWord16Int32 !Word16 !Int32
fst (PairWord16Int32 a _) = a
snd (PairWord16Int32 _ b) = b
curry f x y = f (PairWord16Int32 x y)
instance AdaptPair Word16 Int64 where
data Pair Word16 Int64 = PairWord16Int64 !Word16 !Int64
fst (PairWord16Int64 a _) = a
snd (PairWord16Int64 _ b) = b
curry f x y = f (PairWord16Int64 x y)
instance AdaptPair Word16 Word where
data Pair Word16 Word = PairWord16Word !Word16 !Word
fst (PairWord16Word a _) = a
snd (PairWord16Word _ b) = b
curry f x y = f (PairWord16Word x y)
instance AdaptPair Word16 Word8 where
data Pair Word16 Word8 = PairWord16Word8 !Word16 !Word8
fst (PairWord16Word8 a _) = a
snd (PairWord16Word8 _ b) = b
curry f x y = f (PairWord16Word8 x y)
instance AdaptPair Word16 Word16 where
data Pair Word16 Word16 = PairWord16Word16 !Word16 !Word16
fst (PairWord16Word16 a _) = a
snd (PairWord16Word16 _ b) = b
curry f x y = f (PairWord16Word16 x y)
instance AdaptPair Word16 Word32 where
data Pair Word16 Word32 = PairWord16Word32 !Word16 !Word32
fst (PairWord16Word32 a _) = a
snd (PairWord16Word32 _ b) = b
curry f x y = f (PairWord16Word32 x y)
instance AdaptPair Word16 Word64 where
data Pair Word16 Word64 = PairWord16Word64 !Word16 !Word64
fst (PairWord16Word64 a _) = a
snd (PairWord16Word64 _ b) = b
curry f x y = f (PairWord16Word64 x y)
instance AdaptPair Word16 Double where
data Pair Word16 Double = PairWord16Double !Word16 !Double
fst (PairWord16Double a _) = a
snd (PairWord16Double _ b) = b
curry f x y = f (PairWord16Double x y)
instance AdaptPair Word16 Float where
data Pair Word16 Float = PairWord16Float !Word16 !Float
fst (PairWord16Float a _) = a
snd (PairWord16Float _ b) = b
curry f x y = f (PairWord16Float x y)
instance AdaptPair Word16 Char where
data Pair Word16 Char = PairWord16Char !Word16 !Char
fst (PairWord16Char a _) = a
snd (PairWord16Char _ b) = b
curry f x y = f (PairWord16Char x y)
instance AdaptPair Word32 Int where
data Pair Word32 Int = PairWord32Int !Word32 !Int
fst (PairWord32Int a _) = a
snd (PairWord32Int _ b) = b
curry f x y = f (PairWord32Int x y)
instance AdaptPair Word32 Integer where
data Pair Word32 Integer = PairWord32Integer !Word32 !Integer
fst (PairWord32Integer a _) = a
snd (PairWord32Integer _ b) = b
curry f x y = f (PairWord32Integer x y)
instance AdaptPair Word32 Int8 where
data Pair Word32 Int8 = PairWord32Int8 !Word32 !Int8
fst (PairWord32Int8 a _) = a
snd (PairWord32Int8 _ b) = b
curry f x y = f (PairWord32Int8 x y)
instance AdaptPair Word32 Int16 where
data Pair Word32 Int16 = PairWord32Int16 !Word32 !Int16
fst (PairWord32Int16 a _) = a
snd (PairWord32Int16 _ b) = b
curry f x y = f (PairWord32Int16 x y)
instance AdaptPair Word32 Int32 where
data Pair Word32 Int32 = PairWord32Int32 !Word32 !Int32
fst (PairWord32Int32 a _) = a
snd (PairWord32Int32 _ b) = b
curry f x y = f (PairWord32Int32 x y)
instance AdaptPair Word32 Int64 where
data Pair Word32 Int64 = PairWord32Int64 !Word32 !Int64
fst (PairWord32Int64 a _) = a
snd (PairWord32Int64 _ b) = b
curry f x y = f (PairWord32Int64 x y)
instance AdaptPair Word32 Word where
data Pair Word32 Word = PairWord32Word !Word32 !Word
fst (PairWord32Word a _) = a
snd (PairWord32Word _ b) = b
curry f x y = f (PairWord32Word x y)
instance AdaptPair Word32 Word8 where
data Pair Word32 Word8 = PairWord32Word8 !Word32 !Word8
fst (PairWord32Word8 a _) = a
snd (PairWord32Word8 _ b) = b
curry f x y = f (PairWord32Word8 x y)
instance AdaptPair Word32 Word16 where
data Pair Word32 Word16 = PairWord32Word16 !Word32 !Word16
fst (PairWord32Word16 a _) = a
snd (PairWord32Word16 _ b) = b
curry f x y = f (PairWord32Word16 x y)
instance AdaptPair Word32 Word32 where
data Pair Word32 Word32 = PairWord32Word32 !Word32 !Word32
fst (PairWord32Word32 a _) = a
snd (PairWord32Word32 _ b) = b
curry f x y = f (PairWord32Word32 x y)
instance AdaptPair Word32 Word64 where
data Pair Word32 Word64 = PairWord32Word64 !Word32 !Word64
fst (PairWord32Word64 a _) = a
snd (PairWord32Word64 _ b) = b
curry f x y = f (PairWord32Word64 x y)
instance AdaptPair Word32 Double where
data Pair Word32 Double = PairWord32Double !Word32 !Double
fst (PairWord32Double a _) = a
snd (PairWord32Double _ b) = b
curry f x y = f (PairWord32Double x y)
instance AdaptPair Word32 Float where
data Pair Word32 Float = PairWord32Float !Word32 !Float
fst (PairWord32Float a _) = a
snd (PairWord32Float _ b) = b
curry f x y = f (PairWord32Float x y)
instance AdaptPair Word32 Char where
data Pair Word32 Char = PairWord32Char !Word32 !Char
fst (PairWord32Char a _) = a
snd (PairWord32Char _ b) = b
curry f x y = f (PairWord32Char x y)
instance AdaptPair Word64 Int where
data Pair Word64 Int = PairWord64Int !Word64 !Int
fst (PairWord64Int a _) = a
snd (PairWord64Int _ b) = b
curry f x y = f (PairWord64Int x y)
instance AdaptPair Word64 Integer where
data Pair Word64 Integer = PairWord64Integer !Word64 !Integer
fst (PairWord64Integer a _) = a
snd (PairWord64Integer _ b) = b
curry f x y = f (PairWord64Integer x y)
instance AdaptPair Word64 Int8 where
data Pair Word64 Int8 = PairWord64Int8 !Word64 !Int8
fst (PairWord64Int8 a _) = a
snd (PairWord64Int8 _ b) = b
curry f x y = f (PairWord64Int8 x y)
instance AdaptPair Word64 Int16 where
data Pair Word64 Int16 = PairWord64Int16 !Word64 !Int16
fst (PairWord64Int16 a _) = a
snd (PairWord64Int16 _ b) = b
curry f x y = f (PairWord64Int16 x y)
instance AdaptPair Word64 Int32 where
data Pair Word64 Int32 = PairWord64Int32 !Word64 !Int32
fst (PairWord64Int32 a _) = a
snd (PairWord64Int32 _ b) = b
curry f x y = f (PairWord64Int32 x y)
instance AdaptPair Word64 Int64 where
data Pair Word64 Int64 = PairWord64Int64 !Word64 !Int64
fst (PairWord64Int64 a _) = a
snd (PairWord64Int64 _ b) = b
curry f x y = f (PairWord64Int64 x y)
instance AdaptPair Word64 Word where
data Pair Word64 Word = PairWord64Word !Word64 !Word
fst (PairWord64Word a _) = a
snd (PairWord64Word _ b) = b
curry f x y = f (PairWord64Word x y)
instance AdaptPair Word64 Word8 where
data Pair Word64 Word8 = PairWord64Word8 !Word64 !Word8
fst (PairWord64Word8 a _) = a
snd (PairWord64Word8 _ b) = b
curry f x y = f (PairWord64Word8 x y)
instance AdaptPair Word64 Word16 where
data Pair Word64 Word16 = PairWord64Word16 !Word64 !Word16
fst (PairWord64Word16 a _) = a
snd (PairWord64Word16 _ b) = b
curry f x y = f (PairWord64Word16 x y)
instance AdaptPair Word64 Word32 where
data Pair Word64 Word32 = PairWord64Word32 !Word64 !Word32
fst (PairWord64Word32 a _) = a
snd (PairWord64Word32 _ b) = b
curry f x y = f (PairWord64Word32 x y)
instance AdaptPair Word64 Word64 where
data Pair Word64 Word64 = PairWord64Word64 !Word64 !Word64
fst (PairWord64Word64 a _) = a
snd (PairWord64Word64 _ b) = b
curry f x y = f (PairWord64Word64 x y)
instance AdaptPair Word64 Double where
data Pair Word64 Double = PairWord64Double !Word64 !Double
fst (PairWord64Double a _) = a
snd (PairWord64Double _ b) = b
curry f x y = f (PairWord64Double x y)
instance AdaptPair Word64 Float where
data Pair Word64 Float = PairWord64Float !Word64 !Float
fst (PairWord64Float a _) = a
snd (PairWord64Float _ b) = b
curry f x y = f (PairWord64Float x y)
instance AdaptPair Word64 Char where
data Pair Word64 Char = PairWord64Char !Word64 !Char
fst (PairWord64Char a _) = a
snd (PairWord64Char _ b) = b
curry f x y = f (PairWord64Char x y)
instance AdaptPair Double Int where
data Pair Double Int = PairDoubleInt !Double !Int
fst (PairDoubleInt a _) = a
snd (PairDoubleInt _ b) = b
curry f x y = f (PairDoubleInt x y)
instance AdaptPair Double Integer where
data Pair Double Integer = PairDoubleInteger !Double !Integer
fst (PairDoubleInteger a _) = a
snd (PairDoubleInteger _ b) = b
curry f x y = f (PairDoubleInteger x y)
instance AdaptPair Double Int8 where
data Pair Double Int8 = PairDoubleInt8 !Double !Int8
fst (PairDoubleInt8 a _) = a
snd (PairDoubleInt8 _ b) = b
curry f x y = f (PairDoubleInt8 x y)
instance AdaptPair Double Int16 where
data Pair Double Int16 = PairDoubleInt16 !Double !Int16
fst (PairDoubleInt16 a _) = a
snd (PairDoubleInt16 _ b) = b
curry f x y = f (PairDoubleInt16 x y)
instance AdaptPair Double Int32 where
data Pair Double Int32 = PairDoubleInt32 !Double !Int32
fst (PairDoubleInt32 a _) = a
snd (PairDoubleInt32 _ b) = b
curry f x y = f (PairDoubleInt32 x y)
instance AdaptPair Double Int64 where
data Pair Double Int64 = PairDoubleInt64 !Double !Int64
fst (PairDoubleInt64 a _) = a
snd (PairDoubleInt64 _ b) = b
curry f x y = f (PairDoubleInt64 x y)
instance AdaptPair Double Word where
data Pair Double Word = PairDoubleWord !Double !Word
fst (PairDoubleWord a _) = a
snd (PairDoubleWord _ b) = b
curry f x y = f (PairDoubleWord x y)
instance AdaptPair Double Word8 where
data Pair Double Word8 = PairDoubleWord8 !Double !Word8
fst (PairDoubleWord8 a _) = a
snd (PairDoubleWord8 _ b) = b
curry f x y = f (PairDoubleWord8 x y)
instance AdaptPair Double Word16 where
data Pair Double Word16 = PairDoubleWord16 !Double !Word16
fst (PairDoubleWord16 a _) = a
snd (PairDoubleWord16 _ b) = b
curry f x y = f (PairDoubleWord16 x y)
instance AdaptPair Double Word32 where
data Pair Double Word32 = PairDoubleWord32 !Double !Word32
fst (PairDoubleWord32 a _) = a
snd (PairDoubleWord32 _ b) = b
curry f x y = f (PairDoubleWord32 x y)
instance AdaptPair Double Word64 where
data Pair Double Word64 = PairDoubleWord64 !Double !Word64
fst (PairDoubleWord64 a _) = a
snd (PairDoubleWord64 _ b) = b
curry f x y = f (PairDoubleWord64 x y)
instance AdaptPair Double Double where
data Pair Double Double = PairDoubleDouble !Double !Double
fst (PairDoubleDouble a _) = a
snd (PairDoubleDouble _ b) = b
curry f x y = f (PairDoubleDouble x y)
instance AdaptPair Double Float where
data Pair Double Float = PairDoubleFloat !Double !Float
fst (PairDoubleFloat a _) = a
snd (PairDoubleFloat _ b) = b
curry f x y = f (PairDoubleFloat x y)
instance AdaptPair Double Char where
data Pair Double Char = PairDoubleChar !Double !Char
fst (PairDoubleChar a _) = a
snd (PairDoubleChar _ b) = b
curry f x y = f (PairDoubleChar x y)
instance AdaptPair Float Int where
data Pair Float Int = PairFloatInt !Float !Int
fst (PairFloatInt a _) = a
snd (PairFloatInt _ b) = b
curry f x y = f (PairFloatInt x y)
instance AdaptPair Float Integer where
data Pair Float Integer = PairFloatInteger !Float !Integer
fst (PairFloatInteger a _) = a
snd (PairFloatInteger _ b) = b
curry f x y = f (PairFloatInteger x y)
instance AdaptPair Float Int8 where
data Pair Float Int8 = PairFloatInt8 !Float !Int8
fst (PairFloatInt8 a _) = a
snd (PairFloatInt8 _ b) = b
curry f x y = f (PairFloatInt8 x y)
instance AdaptPair Float Int16 where
data Pair Float Int16 = PairFloatInt16 !Float !Int16
fst (PairFloatInt16 a _) = a
snd (PairFloatInt16 _ b) = b
curry f x y = f (PairFloatInt16 x y)
instance AdaptPair Float Int32 where
data Pair Float Int32 = PairFloatInt32 !Float !Int32
fst (PairFloatInt32 a _) = a
snd (PairFloatInt32 _ b) = b
curry f x y = f (PairFloatInt32 x y)
instance AdaptPair Float Int64 where
data Pair Float Int64 = PairFloatInt64 !Float !Int64
fst (PairFloatInt64 a _) = a
snd (PairFloatInt64 _ b) = b
curry f x y = f (PairFloatInt64 x y)
instance AdaptPair Float Word where
data Pair Float Word = PairFloatWord !Float !Word
fst (PairFloatWord a _) = a
snd (PairFloatWord _ b) = b
curry f x y = f (PairFloatWord x y)
instance AdaptPair Float Word8 where
data Pair Float Word8 = PairFloatWord8 !Float !Word8
fst (PairFloatWord8 a _) = a
snd (PairFloatWord8 _ b) = b
curry f x y = f (PairFloatWord8 x y)
instance AdaptPair Float Word16 where
data Pair Float Word16 = PairFloatWord16 !Float !Word16
fst (PairFloatWord16 a _) = a
snd (PairFloatWord16 _ b) = b
curry f x y = f (PairFloatWord16 x y)
instance AdaptPair Float Word32 where
data Pair Float Word32 = PairFloatWord32 !Float !Word32
fst (PairFloatWord32 a _) = a
snd (PairFloatWord32 _ b) = b
curry f x y = f (PairFloatWord32 x y)
instance AdaptPair Float Word64 where
data Pair Float Word64 = PairFloatWord64 !Float !Word64
fst (PairFloatWord64 a _) = a
snd (PairFloatWord64 _ b) = b
curry f x y = f (PairFloatWord64 x y)
instance AdaptPair Float Double where
data Pair Float Double = PairFloatDouble !Float !Double
fst (PairFloatDouble a _) = a
snd (PairFloatDouble _ b) = b
curry f x y = f (PairFloatDouble x y)
instance AdaptPair Float Float where
data Pair Float Float = PairFloatFloat !Float !Float
fst (PairFloatFloat a _) = a
snd (PairFloatFloat _ b) = b
curry f x y = f (PairFloatFloat x y)
instance AdaptPair Float Char where
data Pair Float Char = PairFloatChar !Float !Char
fst (PairFloatChar a _) = a
snd (PairFloatChar _ b) = b
curry f x y = f (PairFloatChar x y)
instance AdaptPair Char Int where
data Pair Char Int = PairCharInt !Char !Int
fst (PairCharInt a _) = a
snd (PairCharInt _ b) = b
curry f x y = f (PairCharInt x y)
instance AdaptPair Char Integer where
data Pair Char Integer = PairCharInteger !Char !Integer
fst (PairCharInteger a _) = a
snd (PairCharInteger _ b) = b
curry f x y = f (PairCharInteger x y)
instance AdaptPair Char Int8 where
data Pair Char Int8 = PairCharInt8 !Char !Int8
fst (PairCharInt8 a _) = a
snd (PairCharInt8 _ b) = b
curry f x y = f (PairCharInt8 x y)
instance AdaptPair Char Int16 where
data Pair Char Int16 = PairCharInt16 !Char !Int16
fst (PairCharInt16 a _) = a
snd (PairCharInt16 _ b) = b
curry f x y = f (PairCharInt16 x y)
instance AdaptPair Char Int32 where
data Pair Char Int32 = PairCharInt32 !Char !Int32
fst (PairCharInt32 a _) = a
snd (PairCharInt32 _ b) = b
curry f x y = f (PairCharInt32 x y)
instance AdaptPair Char Int64 where
data Pair Char Int64 = PairCharInt64 !Char !Int64
fst (PairCharInt64 a _) = a
snd (PairCharInt64 _ b) = b
curry f x y = f (PairCharInt64 x y)
instance AdaptPair Char Word where
data Pair Char Word = PairCharWord !Char !Word
fst (PairCharWord a _) = a
snd (PairCharWord _ b) = b
curry f x y = f (PairCharWord x y)
instance AdaptPair Char Word8 where
data Pair Char Word8 = PairCharWord8 !Char !Word8
fst (PairCharWord8 a _) = a
snd (PairCharWord8 _ b) = b
curry f x y = f (PairCharWord8 x y)
instance AdaptPair Char Word16 where
data Pair Char Word16 = PairCharWord16 !Char !Word16
fst (PairCharWord16 a _) = a
snd (PairCharWord16 _ b) = b
curry f x y = f (PairCharWord16 x y)
instance AdaptPair Char Word32 where
data Pair Char Word32 = PairCharWord32 !Char !Word32
fst (PairCharWord32 a _) = a
snd (PairCharWord32 _ b) = b
curry f x y = f (PairCharWord32 x y)
instance AdaptPair Char Word64 where
data Pair Char Word64 = PairCharWord64 !Char !Word64
fst (PairCharWord64 a _) = a
snd (PairCharWord64 _ b) = b
curry f x y = f (PairCharWord64 x y)
instance AdaptPair Char Double where
data Pair Char Double = PairCharDouble !Char !Double
fst (PairCharDouble a _) = a
snd (PairCharDouble _ b) = b
curry f x y = f (PairCharDouble x y)
instance AdaptPair Char Float where
data Pair Char Float = PairCharFloat !Char !Float
fst (PairCharFloat a _) = a
snd (PairCharFloat _ b) = b
curry f x y = f (PairCharFloat x y)
instance AdaptPair Char Char where
data Pair Char Char = PairCharChar !Char !Char
fst (PairCharChar a _) = a
snd (PairCharChar _ b) = b
curry f x y = f (PairCharChar x y)