Data.Generics.Product.Internal.HList

generic-lens-core-2.2.1.0: Generically derive traversals, lenses and prisms.

Copyright | (C) 2020 Csongor Kiss
License | BSD3
Maintainer | Csongor Kiss <kiss.csongor.kiss@gmail.com>
Stability | experimental
Portability | non-portable
Safe Haskell | None
Language | Haskell2010

Data.Generics.Product.Internal.HList

Description

Derive an isomorphism between a product type and a flat HList.

# Documentation

class GIsList (f :: Type -> Type) (g :: Type -> Type) (as :: [Type]) (bs :: [Type]) | f -> as, g -> bs, bs f -> g, as g -> f where #

Methods

glist :: Iso (f x) (g x) (HList as) (HList bs) #

#### Instances

Instances details

GIsList (U1 :: Type -> Type) (U1 :: Type -> Type) ('[] :: [Type]) ('[] :: [Type]) # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods glist :: Iso (U1 x) (U1 x) (HList ('[] :: [Type])) (HList ('[] :: [Type])) #
GIsList (Rec0 a) (Rec0 b) '[a] '[b] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods glist :: Iso (Rec0 a x) (Rec0 b x) (HList '[a]) (HList '[b]) #
(GIsList l l' as as', GIsList r r' bs bs', Appending as bs cs as' bs' cs', cs ~ (as ++ bs), cs' ~ (as' ++ bs')) => GIsList (l :*: r) (l' :*: r') cs cs' # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods glist :: Iso ((l :*: r) x) ((l' :*: r') x) (HList cs) (HList cs') #
GIsList f g as bs => GIsList (M1 t meta f) (M1 t meta g) as bs # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods glist :: Iso (M1 t meta f x) (M1 t meta g x) (HList as) (HList bs) #

class IndexList (i :: Nat) (as :: [Type]) (bs :: [Type]) a b | i as -> a, i bs -> b, i as b -> bs, i bs a -> as where #

Methods

point :: Lens (HList as) (HList bs) a b #

#### Instances

Instances details

(IndexList (n - 1) as' bs' a b, as ~ (x ': as'), bs ~ (x ': bs')) => IndexList n as bs a b # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods point :: Lens (HList as) (HList bs) a b #
(as ~ (a ': as'), bs ~ (b ': as')) => IndexList 0 as bs a b # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods point :: Lens (HList as) (HList bs) a b #

data HList (as :: [Type]) where #

Constructors

Nil :: HList ('[] :: [Type]) |
(:>) :: forall a (as1 :: [Type]). a -> HList as1 -> HList (a ': as1) infixr 5 |

#### Instances

Instances details

(Monoid a, Monoid (HList as)) => Monoid (HList (a ': as)) # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods mempty :: HList (a ': as) # mappend :: HList (a ': as) -> HList (a ': as) -> HList (a ': as) # mconcat :: [HList (a ': as)] -> HList (a ': as) #
Monoid (HList ('[] :: [Type])) # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods mempty :: HList ('[] :: [Type]) # mappend :: HList ('[] :: [Type]) -> HList ('[] :: [Type]) -> HList ('[] :: [Type]) # mconcat :: [HList ('[] :: [Type])] -> HList ('[] :: [Type]) #
(Semigroup a, Semigroup (HList as)) => Semigroup (HList (a ': as)) # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods (<>) :: HList (a ': as) -> HList (a ': as) -> HList (a ': as) # sconcat :: NonEmpty (HList (a ': as)) -> HList (a ': as) # stimes :: Integral b => b -> HList (a ': as) -> HList (a ': as) #
Semigroup (HList ('[] :: [Type])) # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods (<>) :: HList ('[] :: [Type]) -> HList ('[] :: [Type]) -> HList ('[] :: [Type]) # sconcat :: NonEmpty (HList ('[] :: [Type])) -> HList ('[] :: [Type]) # stimes :: Integral b => b -> HList ('[] :: [Type]) -> HList ('[] :: [Type]) #

type family (as :: [k]) ++ (bs :: [k]) :: [k] where ... #

Equations

('[] :: [k]) ++ (bs :: [k]) = bs |
(a ': as :: [k]) ++ (bs :: [k]) = a ': (as ++ bs) |

class Elem (as :: [(k1, Type)]) (key :: k1) (i :: Nat) (a :: k) | as key -> i a #

#### Instances

Instances details

(Elem xs key i a, pos ~ (i + 1)) => Elem (x ': xs :: [(k1, Type)]) (key :: k1) pos (a :: k2) # |
Instance details Defined in Data.Generics.Product.Internal.HList
pos ~ 0 => Elem (a ': xs :: [(k, Type)]) (key :: k) pos (a :: (k, Type)) # |
Instance details Defined in Data.Generics.Product.Internal.HList

class ListTuple tuple tuple' (as :: [Type]) (bs :: [Type]) | as -> tuple, bs -> tuple' where #

Minimal complete definition

tupleToList, listToTuple

Methods

tupled :: Iso (HList as) (HList bs) tuple tuple' #

tupleToList :: tuple' -> HList bs #

listToTuple :: HList as -> tuple #

#### Instances

Instances details

ListTuple () () ('[] :: [Type]) ('[] :: [Type]) # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList ('[] :: [Type])) (HList ('[] :: [Type])) () () # tupleToList :: () -> HList ('[] :: [Type]) # listToTuple :: HList ('[] :: [Type]) -> () #
ListTuple a a' '[a] '[a'] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a]) (HList '[a']) a a' # tupleToList :: a' -> HList '[a'] # listToTuple :: HList '[a] -> a #
ListTuple (a1, b1) (a2, b2) '[a1, b1] '[a2, b2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1]) (HList '[a2, b2]) (a1, b1) (a2, b2) # tupleToList :: (a2, b2) -> HList '[a2, b2] # listToTuple :: HList '[a1, b1] -> (a1, b1) #
ListTuple (a1, b1, c1) (a2, b2, c2) '[a1, b1, c1] '[a2, b2, c2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1]) (HList '[a2, b2, c2]) (a1, b1, c1) (a2, b2, c2) # tupleToList :: (a2, b2, c2) -> HList '[a2, b2, c2] # listToTuple :: HList '[a1, b1, c1] -> (a1, b1, c1) #
ListTuple (a1, b1, c1, d1) (a2, b2, c2, d2) '[a1, b1, c1, d1] '[a2, b2, c2, d2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1]) (HList '[a2, b2, c2, d2]) (a1, b1, c1, d1) (a2, b2, c2, d2) # tupleToList :: (a2, b2, c2, d2) -> HList '[a2, b2, c2, d2] # listToTuple :: HList '[a1, b1, c1, d1] -> (a1, b1, c1, d1) #
ListTuple (a1, b1, c1, d1, e1) (a2, b2, c2, d2, e2) '[a1, b1, c1, d1, e1] '[a2, b2, c2, d2, e2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1]) (HList '[a2, b2, c2, d2, e2]) (a1, b1, c1, d1, e1) (a2, b2, c2, d2, e2) # tupleToList :: (a2, b2, c2, d2, e2) -> HList '[a2, b2, c2, d2, e2] # listToTuple :: HList '[a1, b1, c1, d1, e1] -> (a1, b1, c1, d1, e1) #
ListTuple (a1, b1, c1, d1, e1, f1) (a2, b2, c2, d2, e2, f2) '[a1, b1, c1, d1, e1, f1] '[a2, b2, c2, d2, e2, f2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1, f1]) (HList '[a2, b2, c2, d2, e2, f2]) (a1, b1, c1, d1, e1, f1) (a2, b2, c2, d2, e2, f2) # tupleToList :: (a2, b2, c2, d2, e2, f2) -> HList '[a2, b2, c2, d2, e2, f2] # listToTuple :: HList '[a1, b1, c1, d1, e1, f1] -> (a1, b1, c1, d1, e1, f1) #
ListTuple (a1, b1, c1, d1, e1, f1, g1) (a2, b2, c2, d2, e2, f2, g2) '[a1, b1, c1, d1, e1, f1, g1] '[a2, b2, c2, d2, e2, f2, g2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1, f1, g1]) (HList '[a2, b2, c2, d2, e2, f2, g2]) (a1, b1, c1, d1, e1, f1, g1) (a2, b2, c2, d2, e2, f2, g2) # tupleToList :: (a2, b2, c2, d2, e2, f2, g2) -> HList '[a2, b2, c2, d2, e2, f2, g2] # listToTuple :: HList '[a1, b1, c1, d1, e1, f1, g1] -> (a1, b1, c1, d1, e1, f1, g1) #
ListTuple (a1, b1, c1, d1, e1, f1, g1, h1) (a2, b2, c2, d2, e2, f2, g2, h2) '[a1, b1, c1, d1, e1, f1, g1, h1] '[a2, b2, c2, d2, e2, f2, g2, h2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1, f1, g1, h1]) (HList '[a2, b2, c2, d2, e2, f2, g2, h2]) (a1, b1, c1, d1, e1, f1, g1, h1) (a2, b2, c2, d2, e2, f2, g2, h2) # tupleToList :: (a2, b2, c2, d2, e2, f2, g2, h2) -> HList '[a2, b2, c2, d2, e2, f2, g2, h2] # listToTuple :: HList '[a1, b1, c1, d1, e1, f1, g1, h1] -> (a1, b1, c1, d1, e1, f1, g1, h1) #
ListTuple (a1, b1, c1, d1, e1, f1, g1, h1, j1) (a2, b2, c2, d2, e2, f2, g2, h2, j2) '[a1, b1, c1, d1, e1, f1, g1, h1, j1] '[a2, b2, c2, d2, e2, f2, g2, h2, j2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1]) (HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2]) (a1, b1, c1, d1, e1, f1, g1, h1, j1) (a2, b2, c2, d2, e2, f2, g2, h2, j2) # tupleToList :: (a2, b2, c2, d2, e2, f2, g2, h2, j2) -> HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2] # listToTuple :: HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1] -> (a1, b1, c1, d1, e1, f1, g1, h1, j1) #
ListTuple (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2) '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1] '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1]) (HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2]) (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2) # tupleToList :: (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2) -> HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2] # listToTuple :: HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1] -> (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1) #
ListTuple (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2) '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1] '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1]) (HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2]) (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2) # tupleToList :: (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2) -> HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2] # listToTuple :: HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1] -> (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1) #
ListTuple (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2) '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1] '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1]) (HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2]) (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2) # tupleToList :: (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2) -> HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2] # listToTuple :: HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1] -> (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1) #
ListTuple (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2) '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1] '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1]) (HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2]) (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2) # tupleToList :: (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2) -> HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2] # listToTuple :: HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1] -> (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1) #
ListTuple (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2) '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1] '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1]) (HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2]) (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2) # tupleToList :: (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2) -> HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2] # listToTuple :: HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1] -> (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1) #
ListTuple (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2) '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1] '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1]) (HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2]) (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2) # tupleToList :: (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2) -> HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2] # listToTuple :: HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1] -> (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1) #
ListTuple (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2) '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1] '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1]) (HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2]) (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2) # tupleToList :: (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2) -> HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2] # listToTuple :: HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1] -> (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1) #
ListTuple (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1, r1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2, r2) '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1, r1] '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2, r2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1, r1]) (HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2, r2]) (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1, r1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2, r2) # tupleToList :: (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2, r2) -> HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2, r2] # listToTuple :: HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1, r1] -> (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1, r1) #
ListTuple (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1, r1, s1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2, r2, s2) '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1, r1, s1] '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2, r2, s2] # |
Instance details Defined in Data.Generics.Product.Internal.HList Methods tupled :: Iso (HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1, r1, s1]) (HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2, r2, s2]) (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1, r1, s1) (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2, r2, s2) # tupleToList :: (a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2, r2, s2) -> HList '[a2, b2, c2, d2, e2, f2, g2, h2, j2, k2, l2, m2, n2, o2, p2, q2, r2, s2] # listToTuple :: HList '[a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1, r1, s1] -> (a1, b1, c1, d1, e1, f1, g1, h1, j1, k1, l1, m1, n1, o1, p1, q1, r1, s1) #

type family TupleToList a :: [Type] where ... #

Equations

TupleToList () = '[] :: [Type] |
TupleToList (a, b) = '[a, b] |
TupleToList (a, b, c) = '[a, b, c] |
TupleToList (a, b, c, d) = '[a, b, c, d] |
TupleToList (a, b, c, d, e) = '[a, b, c, d, e] |
TupleToList (a, b, c, d, e, f) = '[a, b, c, d, e, f] |
TupleToList (a, b, c, d, e, f, g) = '[a, b, c, d, e, f, g] |
TupleToList (a, b, c, d, e, f, g, h) = '[a, b, c, d, e, f, g, h] |
TupleToList (a, b, c, d, e, f, g, h, j) = '[a, b, c, d, e, f, g, h, j] |
TupleToList (a, b, c, d, e, f, g, h, j, k) = '[a, b, c, d, e, f, g, h, j, k] |
TupleToList (a, b, c, d, e, f, g, h, j, k, l) = '[a, b, c, d, e, f, g, h, j, k, l] |
TupleToList (a, b, c, d, e, f, g, h, j, k, l, m) = '[a, b, c, d, e, f, g, h, j, k, l, m] |
TupleToList (a, b, c, d, e, f, g, h, j, k, l, m, n) = '[a, b, c, d, e, f, g, h, j, k, l, m, n] |
TupleToList (a, b, c, d, e, f, g, h, j, k, l, m, n, o) = '[a, b, c, d, e, f, g, h, j, k, l, m, n, o] |
TupleToList (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p) = '[a, b, c, d, e, f, g, h, j, k, l, m, n, o, p] |
TupleToList (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q) = '[a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q] |
TupleToList (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r) = '[a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r] |
TupleToList (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r, s) = '[a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r, s] |
TupleToList a = '[a] |