module Data.TypeRep.Types.Tuple.Typeable where
import Language.Syntactic
import Data.TypeRep.Representation
import Data.TypeRep.TH
import Data.TypeRep.Types.Tuple
instance (TupleType :<: t, Typeable t a, Typeable t b) =>
Typeable t (a,b)
where typeRep' = sugarSym Tup2_t typeRep' typeRep'
instance (TupleType :<: t, Typeable t a, Typeable t b, Typeable t c) =>
Typeable t (a,b,c)
where typeRep' = sugarSym Tup3_t typeRep' typeRep' typeRep'
instance (TupleType :<: t, Typeable t a, Typeable t b, Typeable t c, Typeable t d) =>
Typeable t (a,b,c,d)
where typeRep' = sugarSym Tup4_t typeRep' typeRep' typeRep' typeRep'
instance (TupleType :<: t, Typeable t a, Typeable t b, Typeable t c, Typeable t d, Typeable t e) =>
Typeable t (a,b,c,d,e)
where typeRep' = sugarSym Tup5_t typeRep' typeRep' typeRep' typeRep' typeRep'
instance (TupleType :<: t, Typeable t a, Typeable t b, Typeable t c, Typeable t d, Typeable t e, Typeable t f) =>
Typeable t (a,b,c,d,e,f)
where typeRep' = sugarSym Tup6_t typeRep' typeRep' typeRep' typeRep' typeRep' typeRep'
instance (TupleType :<: t, Typeable t a, Typeable t b, Typeable t c, Typeable t d, Typeable t e, Typeable t f, Typeable t g) =>
Typeable t (a,b,c,d,e,f,g)
where typeRep' = sugarSym Tup7_t typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep'
instance (TupleType :<: t, Typeable t a, Typeable t b, Typeable t c, Typeable t d, Typeable t e, Typeable t f, Typeable t g, Typeable t h) =>
Typeable t (a,b,c,d,e,f,g,h)
where typeRep' = sugarSym Tup8_t typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep'
instance (TupleType :<: t, Typeable t a, Typeable t b, Typeable t c, Typeable t d, Typeable t e, Typeable t f, Typeable t g, Typeable t h, Typeable t i) =>
Typeable t (a,b,c,d,e,f,g,h,i)
where typeRep' = sugarSym Tup9_t typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep'
instance (TupleType :<: t, Typeable t a, Typeable t b, Typeable t c, Typeable t d, Typeable t e, Typeable t f, Typeable t g, Typeable t h, Typeable t i, Typeable t j) =>
Typeable t (a,b,c,d,e,f,g,h,i,j)
where typeRep' = sugarSym Tup10_t typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep'
instance (TupleType :<: t, Typeable t a, Typeable t b, Typeable t c, Typeable t d, Typeable t e, Typeable t f, Typeable t g, Typeable t h, Typeable t i, Typeable t j, Typeable t k) =>
Typeable t (a,b,c,d,e,f,g,h,i,j,k)
where typeRep' = sugarSym Tup11_t typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep'
instance (TupleType :<: t, Typeable t a, Typeable t b, Typeable t c, Typeable t d, Typeable t e, Typeable t f, Typeable t g, Typeable t h, Typeable t i, Typeable t j, Typeable t k, Typeable t l) =>
Typeable t (a,b,c,d,e,f,g,h,i,j,k,l)
where typeRep' = sugarSym Tup12_t typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep'
instance (TupleType :<: t, Typeable t a, Typeable t b, Typeable t c, Typeable t d, Typeable t e, Typeable t f, Typeable t g, Typeable t h, Typeable t i, Typeable t j, Typeable t k, Typeable t l, Typeable t m) =>
Typeable t (a,b,c,d,e,f,g,h,i,j,k,l,m)
where typeRep' = sugarSym Tup13_t typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep'
instance (TupleType :<: t, Typeable t a, Typeable t b, Typeable t c, Typeable t d, Typeable t e, Typeable t f, Typeable t g, Typeable t h, Typeable t i, Typeable t j, Typeable t k, Typeable t l, Typeable t m, Typeable t n) =>
Typeable t (a,b,c,d,e,f,g,h,i,j,k,l,m,n)
where typeRep' = sugarSym Tup14_t typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep'
instance (TupleType :<: t, Typeable t a, Typeable t b, Typeable t c, Typeable t d, Typeable t e, Typeable t f, Typeable t g, Typeable t h, Typeable t i, Typeable t j, Typeable t k, Typeable t l, Typeable t m, Typeable t n, Typeable t o) =>
Typeable t (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)
where typeRep' = sugarSym Tup15_t typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep' typeRep'
deriveWitnessTypeable ''TupleType
derivePWitnessTypeable ''TupleType