module Control.IndexT.TypeLevel (
IndexT
) where
import GHC.TypeLits (Nat)
import Data.Functor.Identity (Identity(Identity))
type family IndexT (i :: Nat) (a :: k) = (r :: k')
type instance IndexT 0 ('Identity a) = a
type instance IndexT 0 '(a, _) = a
type instance IndexT 1 '(_, a) = a
type instance IndexT 0 '(a, _, _) = a
type instance IndexT 1 '(_, a, _) = a
type instance IndexT 2 '(_, _, a) = a
type instance IndexT 0 '(a, _, _, _) = a
type instance IndexT 1 '(_, a, _, _) = a
type instance IndexT 2 '(_, _, a, _) = a
type instance IndexT 3 '(_, _, _, a) = a
type instance IndexT 0 '(a, _, _, _, _) = a
type instance IndexT 1 '(_, a, _, _, _) = a
type instance IndexT 2 '(_, _, a, _, _) = a
type instance IndexT 3 '(_, _, _, a, _) = a
type instance IndexT 4 '(_, _, _, _, a) = a
type instance IndexT 0 '(a, _, _, _, _, _) = a
type instance IndexT 1 '(_, a, _, _, _, _) = a
type instance IndexT 2 '(_, _, a, _, _, _) = a
type instance IndexT 3 '(_, _, _, a, _, _) = a
type instance IndexT 4 '(_, _, _, _, a, _) = a
type instance IndexT 5 '(_, _, _, _, _, a) = a
type instance IndexT 0 '(a, _, _, _, _, _, _) = a
type instance IndexT 1 '(_, a, _, _, _, _, _) = a
type instance IndexT 2 '(_, _, a, _, _, _, _) = a
type instance IndexT 3 '(_, _, _, a, _, _, _) = a
type instance IndexT 4 '(_, _, _, _, a, _, _) = a
type instance IndexT 5 '(_, _, _, _, _, a, _) = a
type instance IndexT 6 '(_, _, _, _, _, _, a) = a
type instance IndexT 0 '(a, _, _, _, _, _, _, _) = a
type instance IndexT 1 '(_, a, _, _, _, _, _, _) = a
type instance IndexT 2 '(_, _, a, _, _, _, _, _) = a
type instance IndexT 3 '(_, _, _, a, _, _, _, _) = a
type instance IndexT 4 '(_, _, _, _, a, _, _, _) = a
type instance IndexT 5 '(_, _, _, _, _, a, _, _) = a
type instance IndexT 6 '(_, _, _, _, _, _, a, _) = a
type instance IndexT 7 '(_, _, _, _, _, _, _, a) = a
type instance IndexT 0 '(a, _, _, _, _, _, _, _, _) = a
type instance IndexT 1 '(_, a, _, _, _, _, _, _, _) = a
type instance IndexT 2 '(_, _, a, _, _, _, _, _, _) = a
type instance IndexT 3 '(_, _, _, a, _, _, _, _, _) = a
type instance IndexT 4 '(_, _, _, _, a, _, _, _, _) = a
type instance IndexT 5 '(_, _, _, _, _, a, _, _, _) = a
type instance IndexT 6 '(_, _, _, _, _, _, a, _, _) = a
type instance IndexT 7 '(_, _, _, _, _, _, _, a, _) = a
type instance IndexT 8 '(_, _, _, _, _, _, _, _, a) = a
type instance IndexT 0 '(a, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 1 '(_, a, _, _, _, _, _, _, _, _) = a
type instance IndexT 2 '(_, _, a, _, _, _, _, _, _, _) = a
type instance IndexT 3 '(_, _, _, a, _, _, _, _, _, _) = a
type instance IndexT 4 '(_, _, _, _, a, _, _, _, _, _) = a
type instance IndexT 5 '(_, _, _, _, _, a, _, _, _, _) = a
type instance IndexT 6 '(_, _, _, _, _, _, a, _, _, _) = a
type instance IndexT 7 '(_, _, _, _, _, _, _, a, _, _) = a
type instance IndexT 8 '(_, _, _, _, _, _, _, _, a, _) = a
type instance IndexT 9 '(_, _, _, _, _, _, _, _, _, a) = a
type instance IndexT 0 '(a, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 1 '(_, a, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 2 '(_, _, a, _, _, _, _, _, _, _, _) = a
type instance IndexT 3 '(_, _, _, a, _, _, _, _, _, _, _) = a
type instance IndexT 4 '(_, _, _, _, a, _, _, _, _, _, _) = a
type instance IndexT 5 '(_, _, _, _, _, a, _, _, _, _, _) = a
type instance IndexT 6 '(_, _, _, _, _, _, a, _, _, _, _) = a
type instance IndexT 7 '(_, _, _, _, _, _, _, a, _, _, _) = a
type instance IndexT 8 '(_, _, _, _, _, _, _, _, a, _, _) = a
type instance IndexT 9 '(_, _, _, _, _, _, _, _, _, a, _) = a
type instance IndexT 10 '(_, _, _, _, _, _, _, _, _, _, a) = a
type instance IndexT 0 '(a, _, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 1 '(_, a, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 2 '(_, _, a, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 3 '(_, _, _, a, _, _, _, _, _, _, _, _) = a
type instance IndexT 4 '(_, _, _, _, a, _, _, _, _, _, _, _) = a
type instance IndexT 5 '(_, _, _, _, _, a, _, _, _, _, _, _) = a
type instance IndexT 6 '(_, _, _, _, _, _, a, _, _, _, _, _) = a
type instance IndexT 7 '(_, _, _, _, _, _, _, a, _, _, _, _) = a
type instance IndexT 8 '(_, _, _, _, _, _, _, _, a, _, _, _) = a
type instance IndexT 9 '(_, _, _, _, _, _, _, _, _, a, _, _) = a
type instance IndexT 10 '(_, _, _, _, _, _, _, _, _, _, a, _) = a
type instance IndexT 11 '(_, _, _, _, _, _, _, _, _, _, _, a) = a
type instance IndexT 0 '(a, _, _, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 1 '(_, a, _, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 2 '(_, _, a, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 3 '(_, _, _, a, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 4 '(_, _, _, _, a, _, _, _, _, _, _, _, _) = a
type instance IndexT 5 '(_, _, _, _, _, a, _, _, _, _, _, _, _) = a
type instance IndexT 6 '(_, _, _, _, _, _, a, _, _, _, _, _, _) = a
type instance IndexT 7 '(_, _, _, _, _, _, _, a, _, _, _, _, _) = a
type instance IndexT 8 '(_, _, _, _, _, _, _, _, a, _, _, _, _) = a
type instance IndexT 9 '(_, _, _, _, _, _, _, _, _, a, _, _, _) = a
type instance IndexT 10 '(_, _, _, _, _, _, _, _, _, _, a, _, _) = a
type instance IndexT 11 '(_, _, _, _, _, _, _, _, _, _, _, a, _) = a
type instance IndexT 12 '(_, _, _, _, _, _, _, _, _, _, _, _, a) = a
type instance IndexT 0 '(a, _, _, _, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 1 '(_, a, _, _, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 2 '(_, _, a, _, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 3 '(_, _, _, a, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 4 '(_, _, _, _, a, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 5 '(_, _, _, _, _, a, _, _, _, _, _, _, _, _) = a
type instance IndexT 6 '(_, _, _, _, _, _, a, _, _, _, _, _, _, _) = a
type instance IndexT 7 '(_, _, _, _, _, _, _, a, _, _, _, _, _, _) = a
type instance IndexT 8 '(_, _, _, _, _, _, _, _, a, _, _, _, _, _) = a
type instance IndexT 9 '(_, _, _, _, _, _, _, _, _, a, _, _, _, _) = a
type instance IndexT 10 '(_, _, _, _, _, _, _, _, _, _, a, _, _, _) = a
type instance IndexT 11 '(_, _, _, _, _, _, _, _, _, _, _, a, _, _) = a
type instance IndexT 12 '(_, _, _, _, _, _, _, _, _, _, _, _, a, _) = a
type instance IndexT 13 '(_, _, _, _, _, _, _, _, _, _, _, _, _, a) = a
type instance IndexT 0 '(a, _, _, _, _, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 1 '(_, a, _, _, _, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 2 '(_, _, a, _, _, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 3 '(_, _, _, a, _, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 4 '(_, _, _, _, a, _, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 5 '(_, _, _, _, _, a, _, _, _, _, _, _, _, _, _) = a
type instance IndexT 6 '(_, _, _, _, _, _, a, _, _, _, _, _, _, _, _) = a
type instance IndexT 7 '(_, _, _, _, _, _, _, a, _, _, _, _, _, _, _) = a
type instance IndexT 8 '(_, _, _, _, _, _, _, _, a, _, _, _, _, _, _) = a
type instance IndexT 9 '(_, _, _, _, _, _, _, _, _, a, _, _, _, _, _) = a
type instance IndexT 10 '(_, _, _, _, _, _, _, _, _, _, a, _, _, _, _) = a
type instance IndexT 11 '(_, _, _, _, _, _, _, _, _, _, _, a, _, _, _) = a
type instance IndexT 12 '(_, _, _, _, _, _, _, _, _, _, _, _, a, _, _) = a
type instance IndexT 13 '(_, _, _, _, _, _, _, _, _, _, _, _, _, a, _) = a
type instance IndexT 14 '(_, _, _, _, _, _, _, _, _, _, _, _, _, _, a) = a