-- | This module provides functions to map Proxy types -- -- @ -- p1 :: Proxy (Either Int Bool) -- p1 = Proxy -- -- p2 = proxy1of2 p1 -- -- ghci> :t p2 -- p2 :: Proxy Int -- @ -- -- A toy example with a class that creates Strings from Proxy types: -- -- @ -- class FromProxy t where -- createString :: Proxy t -> String -- -- instance FromProxy Int where -- createString _ = \"Int\" -- -- instance FromProxy Bool where -- createString _ = \"Bool\" -- -- instance (FromProxy a, FromProxy b) => FromProxy (Either a b) where -- createString p = "Either " ++ proxy1of2 p ++ " " ++ proxy2of2 p -- -- instance (FromProxy a, FromProxy b) => FromProxy ((->) a b) where -- createString p = createString (proxy1of2 p) ++ " -> " ++ createString (proxy2of2 p) -- -- ghci> createString (Proxy :: Proxy (Either Int Bool)) -- "Either Int Bool" -- -- ghci> createString (Proxy :: Proxy (Int -> Bool -> Either Int Bool)) -- "Int -> Bool -> Either Int Bool" -- @ -- -- A toy example where an Integer is computed from a Proxy type: -- -- @ -- {-\# Language DataKinds \#-} -- {-\# Language KindSignatures \#-} -- import GHC.TypeLits -- import Data.Kind (Type) -- import Data.Proxy -- import Data.Proxy.Mapping -- -- class Compute t where -- compute :: Proxy t -> Integer -- -- data Number (n :: Nat) -- data Add a b -- data Apply (f :: Type -> Type) (a :: Type) -- -- instance KnownNat n => Compute (Number n) where -- compute p = natVal (proxy1of1 p) -- -- instance (Compute a, Compute b) => Compute (Add a b) where -- compute p = (compute $ proxy1of2 p) + (compute $ proxy2of2 p) -- -- instance (Compute a, Compute (f a)) => Compute (Apply f a) where -- compute p = compute (proxyApply (proxy1of2 p) (proxy2of2 p)) -- @ -- -- @ -- ghci> compute (Proxy :: Proxy (Apply (Add (Number 1)) (Number 2))) -- 3 -- @ -- {-# Language TypeOperators #-} {-# Language DataKinds #-} {-# Language TypeFamilies #-} {-# language TypeInType #-} module Data.Proxy.Mapping ( -- * Head and Tail proxyHead , proxyTail -- * Application , proxyApply -- * Successor and Predecessor , proxySucc , proxyPred -- * Accessing type constructor and parameters , proxy0of1 , proxy1of1 , proxy0of2 , proxy1of2 , proxy2of2 , proxy0of3 , proxy1of3 , proxy2of3 , proxy3of3 , proxy0of4 , proxy1of4 , proxy2of4 , proxy3of4 , proxy4of4 , proxy0of5 , proxy1of5 , proxy2of5 , proxy3of5 , proxy4of5 , proxy5of5 , proxy0of6 , proxy1of6 , proxy2of6 , proxy3of6 , proxy4of6 , proxy5of6 , proxy6of6 , proxy0of7 , proxy1of7 , proxy2of7 , proxy3of7 , proxy4of7 , proxy5of7 , proxy6of7 , proxy7of7 , proxy0of8 , proxy1of8 , proxy2of8 , proxy3of8 , proxy4of8 , proxy5of8 , proxy6of8 , proxy7of8 , proxy8of8 , proxy0of9 , proxy1of9 , proxy2of9 , proxy3of9 , proxy4of9 , proxy5of9 , proxy6of9 , proxy7of9 , proxy8of9 , proxy9of9 , proxy0of10 , proxy1of10 , proxy2of10 , proxy3of10 , proxy4of10 , proxy5of10 , proxy6of10 , proxy7of10 , proxy8of10 , proxy9of10 , proxy10of10 , proxy0of11 , proxy1of11 , proxy2of11 , proxy3of11 , proxy4of11 , proxy5of11 , proxy6of11 , proxy7of11 , proxy8of11 , proxy9of11 , proxy10of11 , proxy11of11 , proxy0of12 , proxy1of12 , proxy2of12 , proxy3of12 , proxy4of12 , proxy5of12 , proxy6of12 , proxy7of12 , proxy8of12 , proxy9of12 , proxy10of12 , proxy11of12 , proxy12of12 , proxy0of13 , proxy1of13 , proxy2of13 , proxy3of13 , proxy4of13 , proxy5of13 , proxy6of13 , proxy7of13 , proxy8of13 , proxy9of13 , proxy10of13 , proxy11of13 , proxy12of13 , proxy13of13 , proxy0of14 , proxy1of14 , proxy2of14 , proxy3of14 , proxy4of14 , proxy5of14 , proxy6of14 , proxy7of14 , proxy8of14 , proxy9of14 , proxy10of14 , proxy11of14 , proxy12of14 , proxy13of14 , proxy14of14 , proxy0of15 , proxy1of15 , proxy2of15 , proxy3of15 , proxy4of15 , proxy5of15 , proxy6of15 , proxy7of15 , proxy8of15 , proxy9of15 , proxy10of15 , proxy11of15 , proxy12of15 , proxy13of15 , proxy14of15 , proxy15of15 , proxy0of16 , proxy1of16 , proxy2of16 , proxy3of16 , proxy4of16 , proxy5of16 , proxy6of16 , proxy7of16 , proxy8of16 , proxy9of16 , proxy10of16 , proxy11of16 , proxy12of16 , proxy13of16 , proxy14of16 , proxy15of16 , proxy16of16 ) where import GHC.TypeLits import Data.Proxy -- | Mapping to the head of the type list (x) proxyHead :: Proxy (x ': xs) -> Proxy x proxyHead _ = Proxy -- | Mapping to the tail of the type list (xs) proxyTail :: Proxy (x ': xs) -> Proxy xs proxyTail _ = Proxy -- | Applying a type constructor to a type proxyApply :: Proxy f -> Proxy a -> Proxy (f a) proxyApply _ _ = Proxy -- | Mapping to the successor of a 'Nat' proxySucc :: Proxy n -> Proxy (n+1) proxySucc _ = Proxy -- | Mapping to the predecessor of a 'Nat' proxyPred :: (1 <= n) => Proxy n -> Proxy (n-1) proxyPred _ = Proxy -- | Mapping to the type constructor (t) of a type with 1 parameter proxy0of1 :: Proxy (t a) -> Proxy t proxy0of1 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 1 parameter proxy1of1 :: Proxy (t a) -> Proxy a proxy1of1 _ = Proxy -- | Mapping to the type constructor (t) of a type with 2 parameters proxy0of2 :: Proxy (t a b) -> Proxy t proxy0of2 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 2 parameters proxy1of2 :: Proxy (t a b) -> Proxy a proxy1of2 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 2 parameters proxy2of2 :: Proxy (t a b) -> Proxy b proxy2of2 _ = Proxy -- | Mapping to the type constructor (t) of a type with 3 parameters proxy0of3 :: Proxy (t a b c) -> Proxy t proxy0of3 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 3 parameters proxy1of3 :: Proxy (t a b c) -> Proxy a proxy1of3 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 3 parameters proxy2of3 :: Proxy (t a b c) -> Proxy b proxy2of3 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 3 parameters proxy3of3 :: Proxy (t a b c) -> Proxy c proxy3of3 _ = Proxy -- | Mapping to the type constructor (t) of a type with 4 parameters proxy0of4 :: Proxy (t a b c d) -> Proxy t proxy0of4 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 4 parameters proxy1of4 :: Proxy (t a b c d) -> Proxy a proxy1of4 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 4 parameters proxy2of4 :: Proxy (t a b c d) -> Proxy b proxy2of4 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 4 parameters proxy3of4 :: Proxy (t a b c d) -> Proxy c proxy3of4 _ = Proxy -- | Mapping to the 4th type parameter (d) of a type with 4 parameters proxy4of4 :: Proxy (t a b c d) -> Proxy d proxy4of4 _ = Proxy -- | Mapping to the type constructor (t) of a type with 5 parameters proxy0of5 :: Proxy (t a b c d e) -> Proxy t proxy0of5 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 5 parameters proxy1of5 :: Proxy (t a b c d e) -> Proxy a proxy1of5 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 5 parameters proxy2of5 :: Proxy (t a b c d e) -> Proxy b proxy2of5 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 5 parameters proxy3of5 :: Proxy (t a b c d e) -> Proxy c proxy3of5 _ = Proxy -- | Mapping to the 4th type parameter (d) of a type with 5 parameters proxy4of5 :: Proxy (t a b c d e) -> Proxy d proxy4of5 _ = Proxy -- | Mapping to the 5th type parameter (e) of a type with 5 parameters proxy5of5 :: Proxy (t a b c d e) -> Proxy e proxy5of5 _ = Proxy -- | Mapping to the type constructor (t) of a type with 6 parameters proxy0of6 :: Proxy (t a b c d e f) -> Proxy t proxy0of6 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 6 parameters proxy1of6 :: Proxy (t a b c d e f) -> Proxy a proxy1of6 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 6 parameters proxy2of6 :: Proxy (t a b c d e f) -> Proxy b proxy2of6 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 6 parameters proxy3of6 :: Proxy (t a b c d e f) -> Proxy c proxy3of6 _ = Proxy -- | Mapping to the 4th type parameter (d) of a type with 6 parameters proxy4of6 :: Proxy (t a b c d e f) -> Proxy d proxy4of6 _ = Proxy -- | Mapping to the 5th type parameter (e) of a type with 6 parameters proxy5of6 :: Proxy (t a b c d e f) -> Proxy e proxy5of6 _ = Proxy -- | Mapping to the 6th type parameter (f) of a type with 6 parameters proxy6of6 :: Proxy (t a b c d e f) -> Proxy f proxy6of6 _ = Proxy -- | Mapping to the type constructor (t) of a type with 7 parameters proxy0of7 :: Proxy (t a b c d e f g) -> Proxy t proxy0of7 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 7 parameters proxy1of7 :: Proxy (t a b c d e f g) -> Proxy a proxy1of7 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 7 parameters proxy2of7 :: Proxy (t a b c d e f g) -> Proxy b proxy2of7 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 7 parameters proxy3of7 :: Proxy (t a b c d e f g) -> Proxy c proxy3of7 _ = Proxy -- | Mapping to the 4th type parameter (d) of a type with 7 parameters proxy4of7 :: Proxy (t a b c d e f g) -> Proxy d proxy4of7 _ = Proxy -- | Mapping to the 5th type parameter (e) of a type with 7 parameters proxy5of7 :: Proxy (t a b c d e f g) -> Proxy e proxy5of7 _ = Proxy -- | Mapping to the 6th type parameter (f) of a type with 7 parameters proxy6of7 :: Proxy (t a b c d e f g) -> Proxy f proxy6of7 _ = Proxy -- | Mapping to the 7th type parameter (g) of a type with 7 parameters proxy7of7 :: Proxy (t a b c d e f g) -> Proxy g proxy7of7 _ = Proxy -- | Mapping to the type constructor (t) of a type with 8 parameters proxy0of8 :: Proxy (t a b c d e f g h) -> Proxy t proxy0of8 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 8 parameters proxy1of8 :: Proxy (t a b c d e f g h) -> Proxy a proxy1of8 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 8 parameters proxy2of8 :: Proxy (t a b c d e f g h) -> Proxy b proxy2of8 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 8 parameters proxy3of8 :: Proxy (t a b c d e f g h) -> Proxy c proxy3of8 _ = Proxy -- | Mapping to the 4th type parameter (d) of a type with 8 parameters proxy4of8 :: Proxy (t a b c d e f g h) -> Proxy d proxy4of8 _ = Proxy -- | Mapping to the 5th type parameter (e) of a type with 8 parameters proxy5of8 :: Proxy (t a b c d e f g h) -> Proxy e proxy5of8 _ = Proxy -- | Mapping to the 6th type parameter (f) of a type with 8 parameters proxy6of8 :: Proxy (t a b c d e f g h) -> Proxy f proxy6of8 _ = Proxy -- | Mapping to the 7th type parameter (g) of a type with 8 parameters proxy7of8 :: Proxy (t a b c d e f g h) -> Proxy g proxy7of8 _ = Proxy -- | Mapping to the 8th type parameter (h) of a type with 8 parameters proxy8of8 :: Proxy (t a b c d e f g h) -> Proxy h proxy8of8 _ = Proxy -- | Mapping to the type constructor (t) of a type with 9 parameters proxy0of9 :: Proxy (t a b c d e f g h i) -> Proxy t proxy0of9 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 9 parameters proxy1of9 :: Proxy (t a b c d e f g h i) -> Proxy a proxy1of9 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 9 parameters proxy2of9 :: Proxy (t a b c d e f g h i) -> Proxy b proxy2of9 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 9 parameters proxy3of9 :: Proxy (t a b c d e f g h i) -> Proxy c proxy3of9 _ = Proxy -- | Mapping to the 4th type parameter (d) of a type with 9 parameters proxy4of9 :: Proxy (t a b c d e f g h i) -> Proxy d proxy4of9 _ = Proxy -- | Mapping to the 5th type parameter (e) of a type with 9 parameters proxy5of9 :: Proxy (t a b c d e f g h i) -> Proxy e proxy5of9 _ = Proxy -- | Mapping to the 6th type parameter (f) of a type with 9 parameters proxy6of9 :: Proxy (t a b c d e f g h i) -> Proxy f proxy6of9 _ = Proxy -- | Mapping to the 7th type parameter (g) of a type with 9 parameters proxy7of9 :: Proxy (t a b c d e f g h i) -> Proxy g proxy7of9 _ = Proxy -- | Mapping to the 8th type parameter (h) of a type with 9 parameters proxy8of9 :: Proxy (t a b c d e f g h i) -> Proxy h proxy8of9 _ = Proxy -- | Mapping to the 9th type parameter (i) of a type with 9 parameters proxy9of9 :: Proxy (t a b c d e f g h i) -> Proxy i proxy9of9 _ = Proxy -- | Mapping to the type constructor (t) of a type with 10 parameters proxy0of10 :: Proxy (t a b c d e f g h i j) -> Proxy t proxy0of10 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 10 parameters proxy1of10 :: Proxy (t a b c d e f g h i j) -> Proxy a proxy1of10 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 10 parameters proxy2of10 :: Proxy (t a b c d e f g h i j) -> Proxy b proxy2of10 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 10 parameters proxy3of10 :: Proxy (t a b c d e f g h i j) -> Proxy c proxy3of10 _ = Proxy -- | Mapping to the 4th type parameter (d) of a type with 10 parameters proxy4of10 :: Proxy (t a b c d e f g h i j) -> Proxy d proxy4of10 _ = Proxy -- | Mapping to the 5th type parameter (e) of a type with 10 parameters proxy5of10 :: Proxy (t a b c d e f g h i j) -> Proxy e proxy5of10 _ = Proxy -- | Mapping to the 6th type parameter (f) of a type with 10 parameters proxy6of10 :: Proxy (t a b c d e f g h i j) -> Proxy f proxy6of10 _ = Proxy -- | Mapping to the 7th type parameter (g) of a type with 10 parameters proxy7of10 :: Proxy (t a b c d e f g h i j) -> Proxy g proxy7of10 _ = Proxy -- | Mapping to the 8th type parameter (h) of a type with 10 parameters proxy8of10 :: Proxy (t a b c d e f g h i j) -> Proxy h proxy8of10 _ = Proxy -- | Mapping to the 9th type parameter (i) of a type with 10 parameters proxy9of10 :: Proxy (t a b c d e f g h i j) -> Proxy i proxy9of10 _ = Proxy -- | Mapping to the 10th type parameter (j) of a type with 10 parameters proxy10of10 :: Proxy (t a b c d e f g h i j) -> Proxy j proxy10of10 _ = Proxy -- | Mapping to the type constructor (t) of a type with 11 parameters proxy0of11 :: Proxy (t a b c d e f g h i j k) -> Proxy t proxy0of11 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 11 parameters proxy1of11 :: Proxy (t a b c d e f g h i j k) -> Proxy a proxy1of11 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 11 parameters proxy2of11 :: Proxy (t a b c d e f g h i j k) -> Proxy b proxy2of11 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 11 parameters proxy3of11 :: Proxy (t a b c d e f g h i j k) -> Proxy c proxy3of11 _ = Proxy -- | Mapping to the 4th type parameter (d) of a type with 11 parameters proxy4of11 :: Proxy (t a b c d e f g h i j k) -> Proxy d proxy4of11 _ = Proxy -- | Mapping to the 5th type parameter (e) of a type with 11 parameters proxy5of11 :: Proxy (t a b c d e f g h i j k) -> Proxy e proxy5of11 _ = Proxy -- | Mapping to the 6th type parameter (f) of a type with 11 parameters proxy6of11 :: Proxy (t a b c d e f g h i j k) -> Proxy f proxy6of11 _ = Proxy -- | Mapping to the 7th type parameter (g) of a type with 11 parameters proxy7of11 :: Proxy (t a b c d e f g h i j k) -> Proxy g proxy7of11 _ = Proxy -- | Mapping to the 8th type parameter (h) of a type with 11 parameters proxy8of11 :: Proxy (t a b c d e f g h i j k) -> Proxy h proxy8of11 _ = Proxy -- | Mapping to the 9th type parameter (i) of a type with 11 parameters proxy9of11 :: Proxy (t a b c d e f g h i j k) -> Proxy i proxy9of11 _ = Proxy -- | Mapping to the 10th type parameter (j) of a type with 11 parameters proxy10of11 :: Proxy (t a b c d e f g h i j k) -> Proxy j proxy10of11 _ = Proxy -- | Mapping to the 11th type parameter (k) of a type with 11 parameters proxy11of11 :: Proxy (t a b c d e f g h i j k) -> Proxy k proxy11of11 _ = Proxy -- | Mapping to the type constructor (t) of a type with 12 parameters proxy0of12 :: Proxy (t a b c d e f g h i j k l) -> Proxy t proxy0of12 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 12 parameters proxy1of12 :: Proxy (t a b c d e f g h i j k l) -> Proxy a proxy1of12 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 12 parameters proxy2of12 :: Proxy (t a b c d e f g h i j k l) -> Proxy b proxy2of12 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 12 parameters proxy3of12 :: Proxy (t a b c d e f g h i j k l) -> Proxy c proxy3of12 _ = Proxy -- | Mapping to the 4th type parameter (d) of a type with 12 parameters proxy4of12 :: Proxy (t a b c d e f g h i j k l) -> Proxy d proxy4of12 _ = Proxy -- | Mapping to the 5th type parameter (e) of a type with 12 parameters proxy5of12 :: Proxy (t a b c d e f g h i j k l) -> Proxy e proxy5of12 _ = Proxy -- | Mapping to the 6th type parameter (f) of a type with 12 parameters proxy6of12 :: Proxy (t a b c d e f g h i j k l) -> Proxy f proxy6of12 _ = Proxy -- | Mapping to the 7th type parameter (g) of a type with 12 parameters proxy7of12 :: Proxy (t a b c d e f g h i j k l) -> Proxy g proxy7of12 _ = Proxy -- | Mapping to the 8th type parameter (h) of a type with 12 parameters proxy8of12 :: Proxy (t a b c d e f g h i j k l) -> Proxy h proxy8of12 _ = Proxy -- | Mapping to the 9th type parameter (i) of a type with 12 parameters proxy9of12 :: Proxy (t a b c d e f g h i j k l) -> Proxy i proxy9of12 _ = Proxy -- | Mapping to the 10th type parameter (j) of a type with 12 parameters proxy10of12 :: Proxy (t a b c d e f g h i j k l) -> Proxy j proxy10of12 _ = Proxy -- | Mapping to the 11th type parameter (k) of a type with 12 parameters proxy11of12 :: Proxy (t a b c d e f g h i j k l) -> Proxy k proxy11of12 _ = Proxy -- | Mapping to the 12th type parameter (l) of a type with 12 parameters proxy12of12 :: Proxy (t a b c d e f g h i j k l) -> Proxy l proxy12of12 _ = Proxy -- | Mapping to the type constructor (t) of a type with 13 parameters proxy0of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy t proxy0of13 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 13 parameters proxy1of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy a proxy1of13 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 13 parameters proxy2of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy b proxy2of13 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 13 parameters proxy3of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy c proxy3of13 _ = Proxy -- | Mapping to the 4th type parameter (d) of a type with 13 parameters proxy4of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy d proxy4of13 _ = Proxy -- | Mapping to the 5th type parameter (e) of a type with 13 parameters proxy5of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy e proxy5of13 _ = Proxy -- | Mapping to the 6th type parameter (f) of a type with 13 parameters proxy6of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy f proxy6of13 _ = Proxy -- | Mapping to the 7th type parameter (g) of a type with 13 parameters proxy7of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy g proxy7of13 _ = Proxy -- | Mapping to the 8th type parameter (h) of a type with 13 parameters proxy8of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy h proxy8of13 _ = Proxy -- | Mapping to the 9th type parameter (i) of a type with 13 parameters proxy9of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy i proxy9of13 _ = Proxy -- | Mapping to the 10th type parameter (j) of a type with 13 parameters proxy10of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy j proxy10of13 _ = Proxy -- | Mapping to the 11th type parameter (k) of a type with 13 parameters proxy11of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy k proxy11of13 _ = Proxy -- | Mapping to the 12th type parameter (l) of a type with 13 parameters proxy12of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy l proxy12of13 _ = Proxy -- | Mapping to the 13th type parameter (m) of a type with 13 parameters proxy13of13 :: Proxy (t a b c d e f g h i j k l m) -> Proxy m proxy13of13 _ = Proxy -- | Mapping to the type constructor (t) of a type with 14 parameters proxy0of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy t proxy0of14 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 14 parameters proxy1of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy a proxy1of14 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 14 parameters proxy2of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy b proxy2of14 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 14 parameters proxy3of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy c proxy3of14 _ = Proxy -- | Mapping to the 4th type parameter (d) of a type with 14 parameters proxy4of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy d proxy4of14 _ = Proxy -- | Mapping to the 5th type parameter (e) of a type with 14 parameters proxy5of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy e proxy5of14 _ = Proxy -- | Mapping to the 6th type parameter (f) of a type with 14 parameters proxy6of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy f proxy6of14 _ = Proxy -- | Mapping to the 7th type parameter (g) of a type with 14 parameters proxy7of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy g proxy7of14 _ = Proxy -- | Mapping to the 8th type parameter (h) of a type with 14 parameters proxy8of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy h proxy8of14 _ = Proxy -- | Mapping to the 9th type parameter (i) of a type with 14 parameters proxy9of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy i proxy9of14 _ = Proxy -- | Mapping to the 10th type parameter (j) of a type with 14 parameters proxy10of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy j proxy10of14 _ = Proxy -- | Mapping to the 11th type parameter (k) of a type with 14 parameters proxy11of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy k proxy11of14 _ = Proxy -- | Mapping to the 12th type parameter (l) of a type with 14 parameters proxy12of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy l proxy12of14 _ = Proxy -- | Mapping to the 13th type parameter (m) of a type with 14 parameters proxy13of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy m proxy13of14 _ = Proxy -- | Mapping to the 14th type parameter (n) of a type with 14 parameters proxy14of14 :: Proxy (t a b c d e f g h i j k l m n) -> Proxy n proxy14of14 _ = Proxy -- | Mapping to the type constructor (t) of a type with 15 parameters proxy0of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy t proxy0of15 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 15 parameters proxy1of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy a proxy1of15 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 15 parameters proxy2of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy b proxy2of15 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 15 parameters proxy3of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy c proxy3of15 _ = Proxy -- | Mapping to the 4th type parameter (d) of a type with 15 parameters proxy4of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy d proxy4of15 _ = Proxy -- | Mapping to the 5th type parameter (e) of a type with 15 parameters proxy5of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy e proxy5of15 _ = Proxy -- | Mapping to the 6th type parameter (f) of a type with 15 parameters proxy6of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy f proxy6of15 _ = Proxy -- | Mapping to the 7th type parameter (g) of a type with 15 parameters proxy7of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy g proxy7of15 _ = Proxy -- | Mapping to the 8th type parameter (h) of a type with 15 parameters proxy8of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy h proxy8of15 _ = Proxy -- | Mapping to the 9th type parameter (i) of a type with 15 parameters proxy9of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy i proxy9of15 _ = Proxy -- | Mapping to the 10th type parameter (j) of a type with 15 parameters proxy10of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy j proxy10of15 _ = Proxy -- | Mapping to the 11th type parameter (k) of a type with 15 parameters proxy11of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy k proxy11of15 _ = Proxy -- | Mapping to the 12th type parameter (l) of a type with 15 parameters proxy12of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy l proxy12of15 _ = Proxy -- | Mapping to the 13th type parameter (m) of a type with 15 parameters proxy13of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy m proxy13of15 _ = Proxy -- | Mapping to the 14th type parameter (n) of a type with 15 parameters proxy14of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy n proxy14of15 _ = Proxy -- | Mapping to the 15th type parameter (o) of a type with 15 parameters proxy15of15 :: Proxy (t a b c d e f g h i j k l m n o) -> Proxy o proxy15of15 _ = Proxy -- | Mapping to the type constructor (t) of a type with 16 parameters proxy0of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy t proxy0of16 _ = Proxy -- | Mapping to the 1st type parameter (a) of a type with 16 parameters proxy1of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy a proxy1of16 _ = Proxy -- | Mapping to the 2nd type parameter (b) of a type with 16 parameters proxy2of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy b proxy2of16 _ = Proxy -- | Mapping to the 3rd type parameter (c) of a type with 16 parameters proxy3of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy c proxy3of16 _ = Proxy -- | Mapping to the 4th type parameter (d) of a type with 16 parameters proxy4of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy d proxy4of16 _ = Proxy -- | Mapping to the 5th type parameter (e) of a type with 16 parameters proxy5of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy e proxy5of16 _ = Proxy -- | Mapping to the 6th type parameter (f) of a type with 16 parameters proxy6of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy f proxy6of16 _ = Proxy -- | Mapping to the 7th type parameter (g) of a type with 16 parameters proxy7of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy g proxy7of16 _ = Proxy -- | Mapping to the 8th type parameter (h) of a type with 16 parameters proxy8of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy h proxy8of16 _ = Proxy -- | Mapping to the 9th type parameter (i) of a type with 16 parameters proxy9of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy i proxy9of16 _ = Proxy -- | Mapping to the 10th type parameter (j) of a type with 16 parameters proxy10of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy j proxy10of16 _ = Proxy -- | Mapping to the 11th type parameter (k) of a type with 16 parameters proxy11of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy k proxy11of16 _ = Proxy -- | Mapping to the 12th type parameter (l) of a type with 16 parameters proxy12of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy l proxy12of16 _ = Proxy -- | Mapping to the 13th type parameter (m) of a type with 16 parameters proxy13of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy m proxy13of16 _ = Proxy -- | Mapping to the 14th type parameter (n) of a type with 16 parameters proxy14of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy n proxy14of16 _ = Proxy -- | Mapping to the 15th type parameter (o) of a type with 16 parameters proxy15of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy o proxy15of16 _ = Proxy -- | Mapping to the 16th type parameter (p) of a type with 16 parameters proxy16of16 :: Proxy (t a b c d e f g h i j k l m n o p) -> Proxy p proxy16of16 _ = Proxy