{-# LANGUAGE DeriveFoldable #-}
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveTraversable #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE StrictData #-}
module Data.Tuple.Strict.T16
( T16 (..),
)
where
import Control.DeepSeq (NFData, rnf)
import Data.Bifoldable
import Data.Bifunctor
import Data.Bitraversable
import Data.Functor.Classes (Eq1 (liftEq), Eq2 (liftEq2))
import Data.Hashable (Hashable, hash, hashWithSalt)
import Data.Hashable.Lifted
( Hashable1,
Hashable2,
defaultLiftHashWithSalt,
hashWithSalt1,
liftHashWithSalt,
liftHashWithSalt2,
)
import Data.Semigroup
import GHC.Generics (Generic)
data T16 a b c d e f g h i j k l m n o p
= T16 a b c d e f g h i j k l m n o p
deriving stock (T16 a b c d e f g h i j k l m n o p
forall a. a -> a -> Bounded a
forall a b c d e f g h i j k l m n o p.
(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f,
Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l,
Bounded m, Bounded n, Bounded o, Bounded p) =>
T16 a b c d e f g h i j k l m n o p
maxBound :: T16 a b c d e f g h i j k l m n o p
$cmaxBound :: forall a b c d e f g h i j k l m n o p.
(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f,
Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l,
Bounded m, Bounded n, Bounded o, Bounded p) =>
T16 a b c d e f g h i j k l m n o p
minBound :: T16 a b c d e f g h i j k l m n o p
$cminBound :: forall a b c d e f g h i j k l m n o p.
(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f,
Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l,
Bounded m, Bounded n, Bounded o, Bounded p) =>
T16 a b c d e f g h i j k l m n o p
Bounded, T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall a b c d e f g h i j k l m n o p.
(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k,
Eq l, Eq m, Eq n, Eq o, Eq p) =>
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
/= :: T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
$c/= :: forall a b c d e f g h i j k l m n o p.
(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k,
Eq l, Eq m, Eq n, Eq o, Eq p) =>
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
== :: T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
$c== :: forall a b c d e f g h i j k l m n o p.
(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k,
Eq l, Eq m, Eq n, Eq o, Eq p) =>
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
Eq, T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Ordering
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
forall {a} {b} {c} {d} {e} {f} {g} {h} {i} {j} {k} {l} {m} {n} {o}
{p}.
(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i,
Ord j, Ord k, Ord l, Ord m, Ord n, Ord o, Ord p) =>
Eq (T16 a b c d e f g h i j k l m n o p)
forall a b c d e f g h i j k l m n o p.
(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i,
Ord j, Ord k, Ord l, Ord m, Ord n, Ord o, Ord p) =>
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
forall a b c d e f g h i j k l m n o p.
(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i,
Ord j, Ord k, Ord l, Ord m, Ord n, Ord o, Ord p) =>
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Ordering
forall a b c d e f g h i j k l m n o p.
(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i,
Ord j, Ord k, Ord l, Ord m, Ord n, Ord o, Ord p) =>
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p
min :: T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p
$cmin :: forall a b c d e f g h i j k l m n o p.
(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i,
Ord j, Ord k, Ord l, Ord m, Ord n, Ord o, Ord p) =>
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p
max :: T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p
$cmax :: forall a b c d e f g h i j k l m n o p.
(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i,
Ord j, Ord k, Ord l, Ord m, Ord n, Ord o, Ord p) =>
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p
>= :: T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
$c>= :: forall a b c d e f g h i j k l m n o p.
(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i,
Ord j, Ord k, Ord l, Ord m, Ord n, Ord o, Ord p) =>
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
> :: T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
$c> :: forall a b c d e f g h i j k l m n o p.
(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i,
Ord j, Ord k, Ord l, Ord m, Ord n, Ord o, Ord p) =>
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
<= :: T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
$c<= :: forall a b c d e f g h i j k l m n o p.
(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i,
Ord j, Ord k, Ord l, Ord m, Ord n, Ord o, Ord p) =>
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
< :: T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
$c< :: forall a b c d e f g h i j k l m n o p.
(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i,
Ord j, Ord k, Ord l, Ord m, Ord n, Ord o, Ord p) =>
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Bool
compare :: T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Ordering
$ccompare :: forall a b c d e f g h i j k l m n o p.
(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i,
Ord j, Ord k, Ord l, Ord m, Ord n, Ord o, Ord p) =>
T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p -> Ordering
Ord, ReadPrec [T16 a b c d e f g h i j k l m n o p]
ReadPrec (T16 a b c d e f g h i j k l m n o p)
ReadS [T16 a b c d e f g h i j k l m n o p]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
forall a b c d e f g h i j k l m n o p.
(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h,
Read i, Read j, Read k, Read l, Read m, Read n, Read o, Read p) =>
ReadPrec [T16 a b c d e f g h i j k l m n o p]
forall a b c d e f g h i j k l m n o p.
(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h,
Read i, Read j, Read k, Read l, Read m, Read n, Read o, Read p) =>
ReadPrec (T16 a b c d e f g h i j k l m n o p)
forall a b c d e f g h i j k l m n o p.
(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h,
Read i, Read j, Read k, Read l, Read m, Read n, Read o, Read p) =>
Int -> ReadS (T16 a b c d e f g h i j k l m n o p)
forall a b c d e f g h i j k l m n o p.
(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h,
Read i, Read j, Read k, Read l, Read m, Read n, Read o, Read p) =>
ReadS [T16 a b c d e f g h i j k l m n o p]
readListPrec :: ReadPrec [T16 a b c d e f g h i j k l m n o p]
$creadListPrec :: forall a b c d e f g h i j k l m n o p.
(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h,
Read i, Read j, Read k, Read l, Read m, Read n, Read o, Read p) =>
ReadPrec [T16 a b c d e f g h i j k l m n o p]
readPrec :: ReadPrec (T16 a b c d e f g h i j k l m n o p)
$creadPrec :: forall a b c d e f g h i j k l m n o p.
(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h,
Read i, Read j, Read k, Read l, Read m, Read n, Read o, Read p) =>
ReadPrec (T16 a b c d e f g h i j k l m n o p)
readList :: ReadS [T16 a b c d e f g h i j k l m n o p]
$creadList :: forall a b c d e f g h i j k l m n o p.
(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h,
Read i, Read j, Read k, Read l, Read m, Read n, Read o, Read p) =>
ReadS [T16 a b c d e f g h i j k l m n o p]
readsPrec :: Int -> ReadS (T16 a b c d e f g h i j k l m n o p)
$creadsPrec :: forall a b c d e f g h i j k l m n o p.
(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h,
Read i, Read j, Read k, Read l, Read m, Read n, Read o, Read p) =>
Int -> ReadS (T16 a b c d e f g h i j k l m n o p)
Read, Int -> T16 a b c d e f g h i j k l m n o p -> ShowS
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall a b c d e f g h i j k l m n o p.
(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h,
Show i, Show j, Show k, Show l, Show m, Show n, Show o, Show p) =>
Int -> T16 a b c d e f g h i j k l m n o p -> ShowS
forall a b c d e f g h i j k l m n o p.
(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h,
Show i, Show j, Show k, Show l, Show m, Show n, Show o, Show p) =>
[T16 a b c d e f g h i j k l m n o p] -> ShowS
forall a b c d e f g h i j k l m n o p.
(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h,
Show i, Show j, Show k, Show l, Show m, Show n, Show o, Show p) =>
T16 a b c d e f g h i j k l m n o p -> String
showList :: [T16 a b c d e f g h i j k l m n o p] -> ShowS
$cshowList :: forall a b c d e f g h i j k l m n o p.
(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h,
Show i, Show j, Show k, Show l, Show m, Show n, Show o, Show p) =>
[T16 a b c d e f g h i j k l m n o p] -> ShowS
show :: T16 a b c d e f g h i j k l m n o p -> String
$cshow :: forall a b c d e f g h i j k l m n o p.
(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h,
Show i, Show j, Show k, Show l, Show m, Show n, Show o, Show p) =>
T16 a b c d e f g h i j k l m n o p -> String
showsPrec :: Int -> T16 a b c d e f g h i j k l m n o p -> ShowS
$cshowsPrec :: forall a b c d e f g h i j k l m n o p.
(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h,
Show i, Show j, Show k, Show l, Show m, Show n, Show o, Show p) =>
Int -> T16 a b c d e f g h i j k l m n o p -> ShowS
Show, forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall a b c d e f g h i j k l m n o p x.
Rep (T16 a b c d e f g h i j k l m n o p) x
-> T16 a b c d e f g h i j k l m n o p
forall a b c d e f g h i j k l m n o p x.
T16 a b c d e f g h i j k l m n o p
-> Rep (T16 a b c d e f g h i j k l m n o p) x
$cto :: forall a b c d e f g h i j k l m n o p x.
Rep (T16 a b c d e f g h i j k l m n o p) x
-> T16 a b c d e f g h i j k l m n o p
$cfrom :: forall a b c d e f g h i j k l m n o p x.
T16 a b c d e f g h i j k l m n o p
-> Rep (T16 a b c d e f g h i j k l m n o p) x
Generic)
deriving stock instance Foldable (T16 a b c d e f g h i j k l m n o)
deriving stock instance Functor (T16 a b c d e f g h i j k l m n o)
deriving stock instance Traversable (T16 a b c d e f g h i j k l m n o)
instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o) => Eq1 (T16 a b c d e f g h i j k l m n o) where
liftEq :: forall a b.
(a -> b -> Bool)
-> T16 a b c d e f g h i j k l m n o a
-> T16 a b c d e f g h i j k l m n o b
-> Bool
liftEq = forall (f :: * -> * -> *) a b c d.
Eq2 f =>
(a -> b -> Bool) -> (c -> d -> Bool) -> f a c -> f b d -> Bool
liftEq2 forall a. Eq a => a -> a -> Bool
(==)
instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n) => Eq2 (T16 a b c d e f g h i j k l m n) where
liftEq2 :: forall a b c d.
(a -> b -> Bool)
-> (c -> d -> Bool)
-> T16 a b c d e f g h i j k l m n a c
-> T16 a b c d e f g h i j k l m n b d
-> Bool
liftEq2 a -> b -> Bool
e1 c -> d -> Bool
e2 (T16 a
a b
b c
c d
d e
e f
f g
g h
h i
i j
j k
k l
l m
m n
n a
o c
p) (T16 a
a' b
b' c
c' d
d' e
e' f
f' g
g' h
h' i
i' j
j' k
k' l
l' m
m' n
n' b
o' d
p') =
a
a forall a. Eq a => a -> a -> Bool
== a
a' Bool -> Bool -> Bool
&& b
b forall a. Eq a => a -> a -> Bool
== b
b' Bool -> Bool -> Bool
&& c
c forall a. Eq a => a -> a -> Bool
== c
c' Bool -> Bool -> Bool
&& d
d forall a. Eq a => a -> a -> Bool
== d
d' Bool -> Bool -> Bool
&& e
e forall a. Eq a => a -> a -> Bool
== e
e' Bool -> Bool -> Bool
&& f
f forall a. Eq a => a -> a -> Bool
== f
f' Bool -> Bool -> Bool
&& g
g forall a. Eq a => a -> a -> Bool
== g
g' Bool -> Bool -> Bool
&& h
h forall a. Eq a => a -> a -> Bool
== h
h' Bool -> Bool -> Bool
&& i
i forall a. Eq a => a -> a -> Bool
== i
i' Bool -> Bool -> Bool
&& j
j forall a. Eq a => a -> a -> Bool
== j
j' Bool -> Bool -> Bool
&& k
k forall a. Eq a => a -> a -> Bool
== k
k' Bool -> Bool -> Bool
&& l
l forall a. Eq a => a -> a -> Bool
== l
l' Bool -> Bool -> Bool
&& m
m forall a. Eq a => a -> a -> Bool
== m
m' Bool -> Bool -> Bool
&& n
n forall a. Eq a => a -> a -> Bool
== n
n' Bool -> Bool -> Bool
&& a -> b -> Bool
e1 a
o b
o' Bool -> Bool -> Bool
&& c -> d -> Bool
e2 c
p d
p'
instance
(Monoid a, Monoid b, Monoid c, Monoid d, Monoid e, Monoid f, Monoid g, Monoid h, Monoid i, Monoid j, Monoid k, Monoid l, Monoid m, Monoid n, Monoid o) =>
Applicative (T16 a b c d e f g h i j k l m n o)
where
pure :: forall a. a -> T16 a b c d e f g h i j k l m n o a
pure a
p = forall a b c d e f g h i j k l m n o p.
a
-> b
-> c
-> d
-> e
-> f
-> g
-> h
-> i
-> j
-> k
-> l
-> m
-> n
-> o
-> p
-> T16 a b c d e f g h i j k l m n o p
T16 forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty a
p
T16 a
a b
b c
c d
d e
e f
f g
g h
h i
i j
j k
k l
l m
m n
n o
o a -> b
p <*> :: forall a b.
T16 a b c d e f g h i j k l m n o (a -> b)
-> T16 a b c d e f g h i j k l m n o a
-> T16 a b c d e f g h i j k l m n o b
<*> T16 a
a' b
b' c
c' d
d' e
e' f
f' g
g' h
h' i
i' j
j' k
k' l
l' m
m' n
n' o
o' a
p' =
forall a b c d e f g h i j k l m n o p.
a
-> b
-> c
-> d
-> e
-> f
-> g
-> h
-> i
-> j
-> k
-> l
-> m
-> n
-> o
-> p
-> T16 a b c d e f g h i j k l m n o p
T16 (a
a forall a. Semigroup a => a -> a -> a
<> a
a') (b
b forall a. Semigroup a => a -> a -> a
<> b
b') (c
c forall a. Semigroup a => a -> a -> a
<> c
c') (d
d forall a. Semigroup a => a -> a -> a
<> d
d') (e
e forall a. Semigroup a => a -> a -> a
<> e
e') (f
f forall a. Semigroup a => a -> a -> a
<> f
f') (g
g forall a. Semigroup a => a -> a -> a
<> g
g') (h
h forall a. Semigroup a => a -> a -> a
<> h
h') (i
i forall a. Semigroup a => a -> a -> a
<> i
i') (j
j forall a. Semigroup a => a -> a -> a
<> j
j') (k
k forall a. Semigroup a => a -> a -> a
<> k
k') (l
l forall a. Semigroup a => a -> a -> a
<> l
l') (m
m forall a. Semigroup a => a -> a -> a
<> m
m') (n
n forall a. Semigroup a => a -> a -> a
<> n
n') (o
o forall a. Semigroup a => a -> a -> a
<> o
o') (a -> b
p a
p')
instance
(Monoid a, Monoid b, Monoid c, Monoid d, Monoid e, Monoid f, Monoid g, Monoid h, Monoid i, Monoid j, Monoid k, Monoid l, Monoid m, Monoid n, Monoid o) =>
Monad (T16 a b c d e f g h i j k l m n o)
where
return :: forall a. a -> T16 a b c d e f g h i j k l m n o a
return = forall (f :: * -> *) a. Applicative f => a -> f a
pure
T16 a
a b
b c
c d
d e
e f
f g
g h
h i
i j
j k
k l
l m
m n
n o
o a
p >>= :: forall a b.
T16 a b c d e f g h i j k l m n o a
-> (a -> T16 a b c d e f g h i j k l m n o b)
-> T16 a b c d e f g h i j k l m n o b
>>= a -> T16 a b c d e f g h i j k l m n o b
q = case a -> T16 a b c d e f g h i j k l m n o b
q a
p of
T16 a
a' b
b' c
c' d
d' e
e' f
f' g
g' h
h' i
i' j
j' k
k' l
l' m
m' n
n' o
o' b
p' ->
forall a b c d e f g h i j k l m n o p.
a
-> b
-> c
-> d
-> e
-> f
-> g
-> h
-> i
-> j
-> k
-> l
-> m
-> n
-> o
-> p
-> T16 a b c d e f g h i j k l m n o p
T16 (a
a forall a. Semigroup a => a -> a -> a
<> a
a') (b
b forall a. Semigroup a => a -> a -> a
<> b
b') (c
c forall a. Semigroup a => a -> a -> a
<> c
c') (d
d forall a. Semigroup a => a -> a -> a
<> d
d') (e
e forall a. Semigroup a => a -> a -> a
<> e
e') (f
f forall a. Semigroup a => a -> a -> a
<> f
f') (g
g forall a. Semigroup a => a -> a -> a
<> g
g') (h
h forall a. Semigroup a => a -> a -> a
<> h
h') (i
i forall a. Semigroup a => a -> a -> a
<> i
i') (j
j forall a. Semigroup a => a -> a -> a
<> j
j') (k
k forall a. Semigroup a => a -> a -> a
<> k
k') (l
l forall a. Semigroup a => a -> a -> a
<> l
l') (m
m forall a. Semigroup a => a -> a -> a
<> m
m') (n
n forall a. Semigroup a => a -> a -> a
<> n
n') (o
o forall a. Semigroup a => a -> a -> a
<> o
o') b
p'
instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e, Hashable f, Hashable g, Hashable h, Hashable i, Hashable j, Hashable k, Hashable l, Hashable m, Hashable n, Hashable o, Hashable p) => Hashable (T16 a b c d e f g h i j k l m n o p) where
hash :: T16 a b c d e f g h i j k l m n o p -> Int
hash (T16 a
a b
b c
c d
d e
e f
f g
g h
h i
i j
j k
k l
l m
m n
n o
o p
p) = forall a. Hashable a => a -> Int
hash a
a forall a. Hashable a => Int -> a -> Int
`hashWithSalt` b
b forall a. Hashable a => Int -> a -> Int
`hashWithSalt` c
c forall a. Hashable a => Int -> a -> Int
`hashWithSalt` d
d forall a. Hashable a => Int -> a -> Int
`hashWithSalt` e
e forall a. Hashable a => Int -> a -> Int
`hashWithSalt` f
f forall a. Hashable a => Int -> a -> Int
`hashWithSalt` g
g forall a. Hashable a => Int -> a -> Int
`hashWithSalt` h
h forall a. Hashable a => Int -> a -> Int
`hashWithSalt` i
i forall a. Hashable a => Int -> a -> Int
`hashWithSalt` j
j forall a. Hashable a => Int -> a -> Int
`hashWithSalt` k
k forall a. Hashable a => Int -> a -> Int
`hashWithSalt` l
l forall a. Hashable a => Int -> a -> Int
`hashWithSalt` m
m forall a. Hashable a => Int -> a -> Int
`hashWithSalt` n
n forall a. Hashable a => Int -> a -> Int
`hashWithSalt` o
o forall a. Hashable a => Int -> a -> Int
`hashWithSalt` p
p
hashWithSalt :: Int -> T16 a b c d e f g h i j k l m n o p -> Int
hashWithSalt = forall (f :: * -> *) a.
(Hashable1 f, Hashable a) =>
Int -> f a -> Int
hashWithSalt1
instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e, Hashable f, Hashable g, Hashable h, Hashable i, Hashable j, Hashable k, Hashable l, Hashable m, Hashable n, Hashable o) => Hashable1 (T16 a b c d e f g h i j k l m n o) where
liftHashWithSalt :: forall a.
(Int -> a -> Int)
-> Int -> T16 a b c d e f g h i j k l m n o a -> Int
liftHashWithSalt = forall (f :: * -> * -> *) a b.
(Hashable2 f, Hashable a) =>
(Int -> b -> Int) -> Int -> f a b -> Int
defaultLiftHashWithSalt
instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e, Hashable f, Hashable g, Hashable h, Hashable i, Hashable j, Hashable k, Hashable l, Hashable m, Hashable n) => Hashable2 (T16 a b c d e f g h i j k l m n) where
liftHashWithSalt2 :: forall a b.
(Int -> a -> Int)
-> (Int -> b -> Int)
-> Int
-> T16 a b c d e f g h i j k l m n a b
-> Int
liftHashWithSalt2 Int -> a -> Int
h1 Int -> b -> Int
h2 Int
slt (T16 a
a b
b c
c d
d e
e f
f g
g h
h i
i j
j k
k l
l m
m n
n a
o b
p) =
(Int
slt forall a. Hashable a => Int -> a -> Int
`hashWithSalt` a
a forall a. Hashable a => Int -> a -> Int
`hashWithSalt` b
b forall a. Hashable a => Int -> a -> Int
`hashWithSalt` c
c forall a. Hashable a => Int -> a -> Int
`hashWithSalt` d
d forall a. Hashable a => Int -> a -> Int
`hashWithSalt` e
e forall a. Hashable a => Int -> a -> Int
`hashWithSalt` f
f forall a. Hashable a => Int -> a -> Int
`hashWithSalt` g
g forall a. Hashable a => Int -> a -> Int
`hashWithSalt` h
h forall a. Hashable a => Int -> a -> Int
`hashWithSalt` i
i forall a. Hashable a => Int -> a -> Int
`hashWithSalt` j
j forall a. Hashable a => Int -> a -> Int
`hashWithSalt` k
k forall a. Hashable a => Int -> a -> Int
`hashWithSalt` l
l forall a. Hashable a => Int -> a -> Int
`hashWithSalt` m
m forall a. Hashable a => Int -> a -> Int
`hashWithSalt` n
n) Int -> a -> Int
`h1` a
o Int -> b -> Int
`h2` b
p
instance (Monoid a, Monoid b, Monoid c, Monoid d, Monoid e, Monoid f, Monoid g, Monoid h, Monoid i, Monoid j, Monoid k, Monoid l, Monoid m, Monoid n, Monoid o, Monoid p) => Monoid (T16 a b c d e f g h i j k l m n o p) where
mempty :: T16 a b c d e f g h i j k l m n o p
mempty = forall a b c d e f g h i j k l m n o p.
a
-> b
-> c
-> d
-> e
-> f
-> g
-> h
-> i
-> j
-> k
-> l
-> m
-> n
-> o
-> p
-> T16 a b c d e f g h i j k l m n o p
T16 forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty forall a. Monoid a => a
mempty
instance (NFData a, NFData b, NFData c, NFData d, NFData e, NFData f, NFData g, NFData h, NFData i, NFData j, NFData k, NFData l, NFData m, NFData n, NFData o, NFData p) => NFData (T16 a b c d e f g h i j k l m n o p) where
rnf :: T16 a b c d e f g h i j k l m n o p -> ()
rnf (T16 a
a b
b c
c d
d e
e f
f g
g h
h i
i j
j k
k l
l m
m n
n o
o p
p) = forall a. NFData a => a -> ()
rnf a
a seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf b
b seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf c
c seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf d
d seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf e
e seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf f
f seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf g
g seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf h
h seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf i
i seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf j
j seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf k
k seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf l
l seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf m
m seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf n
n seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf o
o seq :: forall a b. a -> b -> b
`seq` forall a. NFData a => a -> ()
rnf p
p
instance (Semigroup a, Semigroup b, Semigroup c, Semigroup d, Semigroup e, Semigroup f, Semigroup g, Semigroup h, Semigroup i, Semigroup j, Semigroup k, Semigroup l, Semigroup m, Semigroup n, Semigroup o, Semigroup p) => Semigroup (T16 a b c d e f g h i j k l m n o p) where
T16 a
a1 b
b1 c
c1 d
d1 e
e1 f
f1 g
g1 h
h1 i
i1 j
j1 k
k1 l
l1 m
m1 n
n1 o
o1 p
p1 <> :: T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p
<> T16 a
a2 b
b2 c
c2 d
d2 e
e2 f
f2 g
g2 h
h2 i
i2 j
j2 k
k2 l
l2 m
m2 n
n2 o
o2 p
p2 = forall a b c d e f g h i j k l m n o p.
a
-> b
-> c
-> d
-> e
-> f
-> g
-> h
-> i
-> j
-> k
-> l
-> m
-> n
-> o
-> p
-> T16 a b c d e f g h i j k l m n o p
T16 (a
a1 forall a. Semigroup a => a -> a -> a
<> a
a2) (b
b1 forall a. Semigroup a => a -> a -> a
<> b
b2) (c
c1 forall a. Semigroup a => a -> a -> a
<> c
c2) (d
d1 forall a. Semigroup a => a -> a -> a
<> d
d2) (e
e1 forall a. Semigroup a => a -> a -> a
<> e
e2) (f
f1 forall a. Semigroup a => a -> a -> a
<> f
f2) (g
g1 forall a. Semigroup a => a -> a -> a
<> g
g2) (h
h1 forall a. Semigroup a => a -> a -> a
<> h
h2) (i
i1 forall a. Semigroup a => a -> a -> a
<> i
i2) (j
j1 forall a. Semigroup a => a -> a -> a
<> j
j2) (k
k1 forall a. Semigroup a => a -> a -> a
<> k
k2) (l
l1 forall a. Semigroup a => a -> a -> a
<> l
l2) (m
m1 forall a. Semigroup a => a -> a -> a
<> m
m2) (n
n1 forall a. Semigroup a => a -> a -> a
<> n
n2) (o
o1 forall a. Semigroup a => a -> a -> a
<> o
o2) (p
p1 forall a. Semigroup a => a -> a -> a
<> p
p2)
stimes :: forall b.
Integral b =>
b
-> T16 a b c d e f g h i j k l m n o p
-> T16 a b c d e f g h i j k l m n o p
stimes b
ii (T16 a
a b
b c
c d
d e
e f
f g
g h
h i
i j
j k
k l
l m
m n
n o
o p
p) = forall a b c d e f g h i j k l m n o p.
a
-> b
-> c
-> d
-> e
-> f
-> g
-> h
-> i
-> j
-> k
-> l
-> m
-> n
-> o
-> p
-> T16 a b c d e f g h i j k l m n o p
T16 (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii a
a) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii b
b) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii c
c) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii d
d) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii e
e) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii f
f) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii g
g) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii h
h) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii i
i) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii j
j) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii k
k) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii l
l) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii m
m) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii n
n) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii o
o) (forall a b. (Semigroup a, Integral b) => b -> a -> a
stimes b
ii p
p)
instance Bifunctor (T16 x y z w t u v p q r s i j k) where
bimap :: forall a b c d.
(a -> b)
-> (c -> d)
-> T16 x y z w t u v p q r s i j k a c
-> T16 x y z w t u v p q r s i j k b d
bimap a -> b
f c -> d
g (T16 x
x y
y z
z w
w t
t u
u v
v p
p q
q r
r s
s i
i j
j k
k a
a c
b) = forall a b c d e f g h i j k l m n o p.
a
-> b
-> c
-> d
-> e
-> f
-> g
-> h
-> i
-> j
-> k
-> l
-> m
-> n
-> o
-> p
-> T16 a b c d e f g h i j k l m n o p
T16 x
x y
y z
z w
w t
t u
u v
v p
p q
q r
r s
s i
i j
j k
k (a -> b
f a
a) (c -> d
g c
b)
instance Bifoldable (T16 x y z w t u v p q r s i j k) where
bifoldMap :: forall m a b.
Monoid m =>
(a -> m) -> (b -> m) -> T16 x y z w t u v p q r s i j k a b -> m
bifoldMap a -> m
f b -> m
g (T16 x
_ y
_ z
_ w
_ t
_ u
_ v
_ p
_ q
_ r
_ s
_ i
_ j
_ k
_ a
a b
b) = a -> m
f a
a forall a. Semigroup a => a -> a -> a
<> b -> m
g b
b
instance Bitraversable (T16 x y z w t u v p q r s i j k) where
bitraverse :: forall (f :: * -> *) a c b d.
Applicative f =>
(a -> f c)
-> (b -> f d)
-> T16 x y z w t u v p q r s i j k a b
-> f (T16 x y z w t u v p q r s i j k c d)
bitraverse a -> f c
f b -> f d
g (T16 x
x y
y z
z w
w t
t u
u v
v p
p q
q r
r s
s i
i j
j k
k a
a b
b) = forall a b c d e f g h i j k l m n o p.
a
-> b
-> c
-> d
-> e
-> f
-> g
-> h
-> i
-> j
-> k
-> l
-> m
-> n
-> o
-> p
-> T16 a b c d e f g h i j k l m n o p
T16 x
x y
y z
z w
w t
t u
u v
v p
p q
q r
r s
s i
i j
j k
k forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> a -> f c
f a
a forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> b -> f d
g b
b