module Mischief.ECS.Components.BundleTypes where

import Data.Data
import Data.Set (Set)
import Data.Set qualified as Set
import Mischief.ECS.Components

class BundleTypes t where
  types :: Proxy t -> Set TypeRep

instance {-# OVERLAPPABLE #-} (Component c) => BundleTypes c where
  types :: Proxy c -> Set TypeRep
  types :: Proxy c -> Set TypeRep
types = TypeRep -> Set TypeRep
forall a. a -> Set a
Set.singleton (TypeRep -> Set TypeRep)
-> (Proxy c -> TypeRep) -> Proxy c -> Set TypeRep
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Proxy c -> TypeRep
forall {k} (proxy :: k -> *) (a :: k).
Typeable a =>
proxy a -> TypeRep
typeRep

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1) => BundleTypes (t0, t1) where
  types :: Proxy (t0, t1) -> Set TypeRep
types Proxy (t0, t1)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1]

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1, BundleTypes t2) => BundleTypes (t0, t1, t2) where
  types :: Proxy (t0, t1, t2) -> Set TypeRep
types Proxy (t0, t1, t2)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1, Proxy t2 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t2 -> Set TypeRep) -> Proxy t2 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t2]

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1, BundleTypes t2, BundleTypes t3) => BundleTypes (t0, t1, t2, t3) where
  types :: Proxy (t0, t1, t2, t3) -> Set TypeRep
types Proxy (t0, t1, t2, t3)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1, Proxy t2 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t2 -> Set TypeRep) -> Proxy t2 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t2, Proxy t3 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t3 -> Set TypeRep) -> Proxy t3 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t3]

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1, BundleTypes t2, BundleTypes t3, BundleTypes t4) => BundleTypes (t0, t1, t2, t3, t4) where
  types :: Proxy (t0, t1, t2, t3, t4) -> Set TypeRep
types Proxy (t0, t1, t2, t3, t4)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1, Proxy t2 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t2 -> Set TypeRep) -> Proxy t2 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t2, Proxy t3 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t3 -> Set TypeRep) -> Proxy t3 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t3, Proxy t4 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t4 -> Set TypeRep) -> Proxy t4 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t4]

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1, BundleTypes t2, BundleTypes t3, BundleTypes t4, BundleTypes t5) => BundleTypes (t0, t1, t2, t3, t4, t5) where
  types :: Proxy (t0, t1, t2, t3, t4, t5) -> Set TypeRep
types Proxy (t0, t1, t2, t3, t4, t5)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1, Proxy t2 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t2 -> Set TypeRep) -> Proxy t2 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t2, Proxy t3 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t3 -> Set TypeRep) -> Proxy t3 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t3, Proxy t4 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t4 -> Set TypeRep) -> Proxy t4 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t4, Proxy t5 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t5 -> Set TypeRep) -> Proxy t5 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t5]

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1, BundleTypes t2, BundleTypes t3, BundleTypes t4, BundleTypes t5, BundleTypes t6) => BundleTypes (t0, t1, t2, t3, t4, t5, t6) where
  types :: Proxy (t0, t1, t2, t3, t4, t5, t6) -> Set TypeRep
types Proxy (t0, t1, t2, t3, t4, t5, t6)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1, Proxy t2 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t2 -> Set TypeRep) -> Proxy t2 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t2, Proxy t3 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t3 -> Set TypeRep) -> Proxy t3 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t3, Proxy t4 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t4 -> Set TypeRep) -> Proxy t4 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t4, Proxy t5 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t5 -> Set TypeRep) -> Proxy t5 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t5, Proxy t6 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t6 -> Set TypeRep) -> Proxy t6 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t6]

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1, BundleTypes t2, BundleTypes t3, BundleTypes t4, BundleTypes t5, BundleTypes t6, BundleTypes t7) => BundleTypes (t0, t1, t2, t3, t4, t5, t6, t7) where
  types :: Proxy (t0, t1, t2, t3, t4, t5, t6, t7) -> Set TypeRep
types Proxy (t0, t1, t2, t3, t4, t5, t6, t7)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1, Proxy t2 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t2 -> Set TypeRep) -> Proxy t2 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t2, Proxy t3 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t3 -> Set TypeRep) -> Proxy t3 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t3, Proxy t4 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t4 -> Set TypeRep) -> Proxy t4 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t4, Proxy t5 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t5 -> Set TypeRep) -> Proxy t5 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t5, Proxy t6 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t6 -> Set TypeRep) -> Proxy t6 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t6, Proxy t7 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t7 -> Set TypeRep) -> Proxy t7 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t7]

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1, BundleTypes t2, BundleTypes t3, BundleTypes t4, BundleTypes t5, BundleTypes t6, BundleTypes t7, BundleTypes t8) => BundleTypes (t0, t1, t2, t3, t4, t5, t6, t7, t8) where
  types :: Proxy (t0, t1, t2, t3, t4, t5, t6, t7, t8) -> Set TypeRep
types Proxy (t0, t1, t2, t3, t4, t5, t6, t7, t8)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1, Proxy t2 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t2 -> Set TypeRep) -> Proxy t2 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t2, Proxy t3 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t3 -> Set TypeRep) -> Proxy t3 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t3, Proxy t4 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t4 -> Set TypeRep) -> Proxy t4 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t4, Proxy t5 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t5 -> Set TypeRep) -> Proxy t5 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t5, Proxy t6 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t6 -> Set TypeRep) -> Proxy t6 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t6, Proxy t7 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t7 -> Set TypeRep) -> Proxy t7 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t7, Proxy t8 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t8 -> Set TypeRep) -> Proxy t8 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t8]

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1, BundleTypes t2, BundleTypes t3, BundleTypes t4, BundleTypes t5, BundleTypes t6, BundleTypes t7, BundleTypes t8, BundleTypes t9) => BundleTypes (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) where
  types :: Proxy (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) -> Set TypeRep
types Proxy (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1, Proxy t2 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t2 -> Set TypeRep) -> Proxy t2 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t2, Proxy t3 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t3 -> Set TypeRep) -> Proxy t3 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t3, Proxy t4 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t4 -> Set TypeRep) -> Proxy t4 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t4, Proxy t5 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t5 -> Set TypeRep) -> Proxy t5 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t5, Proxy t6 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t6 -> Set TypeRep) -> Proxy t6 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t6, Proxy t7 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t7 -> Set TypeRep) -> Proxy t7 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t7, Proxy t8 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t8 -> Set TypeRep) -> Proxy t8 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t8, Proxy t9 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t9 -> Set TypeRep) -> Proxy t9 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t9]

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1, BundleTypes t2, BundleTypes t3, BundleTypes t4, BundleTypes t5, BundleTypes t6, BundleTypes t7, BundleTypes t8, BundleTypes t9, BundleTypes t10) => BundleTypes (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) where
  types :: Proxy (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) -> Set TypeRep
types Proxy (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1, Proxy t2 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t2 -> Set TypeRep) -> Proxy t2 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t2, Proxy t3 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t3 -> Set TypeRep) -> Proxy t3 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t3, Proxy t4 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t4 -> Set TypeRep) -> Proxy t4 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t4, Proxy t5 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t5 -> Set TypeRep) -> Proxy t5 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t5, Proxy t6 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t6 -> Set TypeRep) -> Proxy t6 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t6, Proxy t7 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t7 -> Set TypeRep) -> Proxy t7 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t7, Proxy t8 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t8 -> Set TypeRep) -> Proxy t8 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t8, Proxy t9 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t9 -> Set TypeRep) -> Proxy t9 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t9, Proxy t10 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t10 -> Set TypeRep) -> Proxy t10 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t10]

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1, BundleTypes t2, BundleTypes t3, BundleTypes t4, BundleTypes t5, BundleTypes t6, BundleTypes t7, BundleTypes t8, BundleTypes t9, BundleTypes t10, BundleTypes t11) => BundleTypes (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) where
  types :: Proxy (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)
-> Set TypeRep
types Proxy (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1, Proxy t2 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t2 -> Set TypeRep) -> Proxy t2 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t2, Proxy t3 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t3 -> Set TypeRep) -> Proxy t3 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t3, Proxy t4 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t4 -> Set TypeRep) -> Proxy t4 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t4, Proxy t5 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t5 -> Set TypeRep) -> Proxy t5 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t5, Proxy t6 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t6 -> Set TypeRep) -> Proxy t6 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t6, Proxy t7 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t7 -> Set TypeRep) -> Proxy t7 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t7, Proxy t8 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t8 -> Set TypeRep) -> Proxy t8 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t8, Proxy t9 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t9 -> Set TypeRep) -> Proxy t9 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t9, Proxy t10 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t10 -> Set TypeRep) -> Proxy t10 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t10, Proxy t11 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t11 -> Set TypeRep) -> Proxy t11 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t11]

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1, BundleTypes t2, BundleTypes t3, BundleTypes t4, BundleTypes t5, BundleTypes t6, BundleTypes t7, BundleTypes t8, BundleTypes t9, BundleTypes t10, BundleTypes t11, BundleTypes t12) => BundleTypes (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12) where
  types :: Proxy (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12)
-> Set TypeRep
types Proxy (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1, Proxy t2 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t2 -> Set TypeRep) -> Proxy t2 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t2, Proxy t3 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t3 -> Set TypeRep) -> Proxy t3 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t3, Proxy t4 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t4 -> Set TypeRep) -> Proxy t4 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t4, Proxy t5 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t5 -> Set TypeRep) -> Proxy t5 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t5, Proxy t6 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t6 -> Set TypeRep) -> Proxy t6 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t6, Proxy t7 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t7 -> Set TypeRep) -> Proxy t7 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t7, Proxy t8 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t8 -> Set TypeRep) -> Proxy t8 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t8, Proxy t9 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t9 -> Set TypeRep) -> Proxy t9 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t9, Proxy t10 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t10 -> Set TypeRep) -> Proxy t10 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t10, Proxy t11 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t11 -> Set TypeRep) -> Proxy t11 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t11, Proxy t12 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t12 -> Set TypeRep) -> Proxy t12 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t12]

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1, BundleTypes t2, BundleTypes t3, BundleTypes t4, BundleTypes t5, BundleTypes t6, BundleTypes t7, BundleTypes t8, BundleTypes t9, BundleTypes t10, BundleTypes t11, BundleTypes t12, BundleTypes t13) => BundleTypes (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13) where
  types :: Proxy (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13)
-> Set TypeRep
types Proxy (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1, Proxy t2 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t2 -> Set TypeRep) -> Proxy t2 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t2, Proxy t3 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t3 -> Set TypeRep) -> Proxy t3 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t3, Proxy t4 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t4 -> Set TypeRep) -> Proxy t4 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t4, Proxy t5 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t5 -> Set TypeRep) -> Proxy t5 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t5, Proxy t6 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t6 -> Set TypeRep) -> Proxy t6 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t6, Proxy t7 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t7 -> Set TypeRep) -> Proxy t7 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t7, Proxy t8 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t8 -> Set TypeRep) -> Proxy t8 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t8, Proxy t9 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t9 -> Set TypeRep) -> Proxy t9 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t9, Proxy t10 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t10 -> Set TypeRep) -> Proxy t10 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t10, Proxy t11 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t11 -> Set TypeRep) -> Proxy t11 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t11, Proxy t12 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t12 -> Set TypeRep) -> Proxy t12 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t12, Proxy t13 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t13 -> Set TypeRep) -> Proxy t13 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t13]

instance {-# OVERLAPPING #-} (BundleTypes t0, BundleTypes t1, BundleTypes t2, BundleTypes t3, BundleTypes t4, BundleTypes t5, BundleTypes t6, BundleTypes t7, BundleTypes t8, BundleTypes t9, BundleTypes t10, BundleTypes t11, BundleTypes t12, BundleTypes t13, BundleTypes t14) => BundleTypes (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) where
  types :: Proxy
  (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14)
-> Set TypeRep
types Proxy
  (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14)
_ = [Set TypeRep] -> Set TypeRep
forall (f :: * -> *) a. (Foldable f, Ord a) => f (Set a) -> Set a
Set.unions [Proxy t0 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t0 -> Set TypeRep) -> Proxy t0 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t0, Proxy t1 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t1 -> Set TypeRep) -> Proxy t1 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t1, Proxy t2 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t2 -> Set TypeRep) -> Proxy t2 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t2, Proxy t3 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t3 -> Set TypeRep) -> Proxy t3 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t3, Proxy t4 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t4 -> Set TypeRep) -> Proxy t4 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t4, Proxy t5 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t5 -> Set TypeRep) -> Proxy t5 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t5, Proxy t6 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t6 -> Set TypeRep) -> Proxy t6 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t6, Proxy t7 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t7 -> Set TypeRep) -> Proxy t7 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t7, Proxy t8 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t8 -> Set TypeRep) -> Proxy t8 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t8, Proxy t9 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t9 -> Set TypeRep) -> Proxy t9 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t9, Proxy t10 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t10 -> Set TypeRep) -> Proxy t10 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t10, Proxy t11 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t11 -> Set TypeRep) -> Proxy t11 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t11, Proxy t12 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t12 -> Set TypeRep) -> Proxy t12 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t12, Proxy t13 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t13 -> Set TypeRep) -> Proxy t13 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t13, Proxy t14 -> Set TypeRep
forall {k} (t :: k). BundleTypes t => Proxy t -> Set TypeRep
types (Proxy t14 -> Set TypeRep) -> Proxy t14 -> Set TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @t14]