module Parameterized.TypeLevel where
type family At0 t where
At0 (x, _) = x
At0 (x, _, _) = x
At0 (x, _, _, _) = x
At0 (x, _, _, _, _) = x
At0 (x, _, _, _, _, _) = x
At0 (x, _, _, _, _, _, _) = x
At0 (x, _, _, _, _, _, _, _) = x
At0 (x, _, _, _, _, _, _, _, _) = x
At0 (x, _, _, _, _, _, _, _, _, _) = x
type family At1 t where
At1 (_, x) = x
At1 (_, x, _) = x
At1 (_, x, _, _) = x
At1 (_, x, _, _, _) = x
At1 (_, x, _, _, _, _) = x
At1 (_, x, _, _, _, _, _) = x
At1 (_, x, _, _, _, _, _, _) = x
At1 (_, x, _, _, _, _, _, _, _) = x
At1 (_, x, _, _, _, _, _, _, _, _) = x
type family At2 t where
At2 (_, _, x) = x
At2 (_, _, x, _) = x
At2 (_, _, x, _, _) = x
At2 (_, _, x, _, _, _) = x
At2 (_, _, x, _, _, _, _) = x
At2 (_, _, x, _, _, _, _, _) = x
At2 (_, _, x, _, _, _, _, _, _) = x
At2 (_, _, x, _, _, _, _, _, _, _) = x
type family At3 t where
At3 (_, _, _, x) = x
At3 (_, _, _, x, _) = x
At3 (_, _, _, x, _, _) = x
At3 (_, _, _, x, _, _, _) = x
At3 (_, _, _, x, _, _, _, _) = x
At3 (_, _, _, x, _, _, _, _, _) = x
At3 (_, _, _, x, _, _, _, _, _, _) = x
type family At4 t where
At4 (_, _, _, _, x) = x
At4 (_, _, _, _, x, _) = x
At4 (_, _, _, _, x, _, _) = x
At4 (_, _, _, _, x, _, _, _) = x
At4 (_, _, _, _, x, _, _, _, _) = x
At4 (_, _, _, _, x, _, _, _, _, _) = x
type family At5 t where
At5 (_, _, _, _, _, x) = x
At5 (_, _, _, _, _, x, _) = x
At5 (_, _, _, _, _, x, _, _) = x
At5 (_, _, _, _, _, x, _, _, _) = x
At5 (_, _, _, _, _, x, _, _, _, _) = x
type family At6 t where
At6 (_, _, _, _, _, _, x) = x
At6 (_, _, _, _, _, _, x, _) = x
At6 (_, _, _, _, _, _, x, _, _) = x
At6 (_, _, _, _, _, _, x, _, _, _) = x
type family At7 t where
At7 (_, _, _, _, _, _, _, x) = x
At7 (_, _, _, _, _, _, _, x, _) = x
At7 (_, _, _, _, _, _, _, x, _, _) = x
type family At8 t where
At8 (_, _, _, _, _, _, _, _, x) = x
At8 (_, _, _, _, _, _, _, _, x, _) = x
type family At9 t where
At9 (_, _, _, _, _, _, _, _, _, x) = x