Copyright | (C) 2018 Csongor Kiss |
---|---|
License | BSD3 |
Maintainer | Csongor Kiss <kiss.csongor.kiss@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
Data.GenericLens.Internal
Description
The library internals are exposed through this module. Please keep in mind that everything here is subject to change irrespective of the the version numbers.
Synopsis
- type Indexed t = Indexed' t 0
- type family Infer (s :: *) (a' :: *) (b :: *) :: * where ...
- data PTag = PTag
- type family P :: Nat -> k -> PTag -> k
- type family LookupParam (a :: k) (p :: Nat) :: Maybe Nat where ...
- type family ArgAt (t :: k) (n :: Nat) :: j where ...
- type family ArgCount (t :: k) :: Nat where ...
- class UnifyHead (a :: k) (b :: k)
- type family HasTotalFieldP (field :: Symbol) f :: Maybe Type where ...
- type family HasTotalTypeP (typ :: Type) f :: Maybe Type where ...
- type family HasTotalPositionP (pos :: Nat) f :: Maybe Type where ...
- data Pos (p :: Nat)
- type family HasPartialTypeP a f :: Bool where ...
- type family HasCtorP (ctor :: Symbol) f :: Bool where ...
- type family GTypes (rep :: Type -> Type) :: [Type] where ...
- type family CollectTotalType t f :: TypeStat where ...
- type family CollectPartialType t f :: [Symbol] where ...
- type family CollectField t f :: TypeStat where ...
- type family CollectFieldsOrdered (r :: * -> *) :: [Symbol] where ...
- data TypeStat = TypeStat {
- _containsNone :: [Symbol]
- _containsMultiple :: [Symbol]
- _containsOne :: [Symbol]
- type family (xs :: [Symbol]) \\ (ys :: [Symbol]) :: [Symbol] where ...
- type family ShowSymbols (ctors :: [Symbol]) :: ErrorMessage where ...
- type Indexed t = Indexed' t 0
- type family Infer (s :: *) (a' :: *) (b :: *) :: * where ...
- data PTag = PTag
- type family P :: Nat -> k -> PTag -> k
- type family LookupParam (a :: k) (p :: Nat) :: Maybe Nat where ...
- type family ArgAt (t :: k) (n :: Nat) :: j where ...
- type family ArgCount (t :: k) :: Nat where ...
- class UnifyHead (a :: k) (b :: k)
- type family CollectTotalType t f :: TypeStat where ...
- type family CollectPartialType t f :: [Symbol] where ...
- type family CollectField t f :: TypeStat where ...
- type family CollectFieldsOrdered (r :: * -> *) :: [Symbol] where ...
- data TypeStat = TypeStat {
- _containsNone :: [Symbol]
- _containsMultiple :: [Symbol]
- _containsOne :: [Symbol]
- type family (xs :: [Symbol]) \\ (ys :: [Symbol]) :: [Symbol] where ...
- type family HasTotalFieldP (field :: Symbol) f :: Maybe Type where ...
- type family HasTotalTypeP (typ :: Type) f :: Maybe Type where ...
- type family HasTotalPositionP (pos :: Nat) f :: Maybe Type where ...
- data Pos (p :: Nat)
- type family HasPartialTypeP a f :: Bool where ...
- type family HasCtorP (ctor :: Symbol) f :: Bool where ...
- type family GTypes (rep :: Type -> Type) :: [Type] where ...
- data Void
- data Void1 a
- data Void2 a b
- class GAsConstructor (ctor :: Symbol) s t a b | ctor s -> a, ctor t -> b where
- type GAsConstructor' ctor s a = GAsConstructor ctor s s a a
- class GAsType (f :: Type -> Type) (as :: [Type]) where
- class GAsSubtype (subf :: Type -> Type) (supf :: Type -> Type) where
- type (<?) x y = Not (y <=? x)
- type family Size f :: Nat where ...
- type family CRep (a :: Type) :: G where ...
- class GLens (pred :: Pred) (s :: Type -> Type) (t :: Type -> Type) a b | s pred -> a, t pred -> b where
- type GLens' pred s a = GLens pred s s a a
- type TyFun a b = a -> b -> Type
- type family Eval (f :: TyFun a b) (x :: a) :: b
- class GUpcast (sub :: Type -> Type) (sup :: Type -> Type) where
- gupcast :: sub p -> sup p
- class GSmash sub sup where
- gsmash :: sup p -> sub p -> sub p
- class GHasConstraints (c :: * -> * -> Constraint) s t where
- gconstraints :: TraversalC c (s x) (t x)
- class GHasConstraints' (c :: * -> Constraint) (f :: * -> *) where
- gconstraints' :: forall g x. Applicative g => (forall a. c a => a -> g a) -> f x -> g (f x)
- class GIsList (f :: Type -> Type) (g :: Type -> Type) (as :: [Type]) (bs :: [Type]) | f -> as, g -> bs, bs f -> g, as g -> f where
- class IndexList (i :: Nat) as bs a b | i as -> a, i bs -> b, i as b -> bs, i bs a -> as where
- data HList (as :: [Type]) where
- type family (as :: [k]) ++ (bs :: [k]) :: [k] where ...
- class Elem (as :: [(k, Type)]) (key :: k) (i :: Nat) a | as key -> i a
- class ListTuple (tuple :: Type) (as :: [Type]) | as -> tuple where
- type ListToTuple as :: Type
- tupled :: Iso' (HList as) tuple
- tupleToList :: tuple -> HList as
- listToTuple :: HList as -> tuple
- type family TupleToList a where ...
Documentation
type family LookupParam (a :: k) (p :: Nat) :: Maybe Nat where ... Source #
Equations
LookupParam (param (n :: Nat)) m = Nothing | |
LookupParam (a (_ (m :: Nat))) n = IfEq m n (Just 0) (MaybeAdd (LookupParam a n) 1) | |
LookupParam (a _) n = MaybeAdd (LookupParam a n) 1 | |
LookupParam a _ = Nothing |
class UnifyHead (a :: k) (b :: k) Source #
Ensure that the types a
and b
are both applications of the same
constructor. The arguments may be different.
Instances
a ~ b => UnifyHead (a :: k) (b :: k) Source # | |
Defined in Data.Generics.Internal.Families.Changing | |
(gb ~ g b, UnifyHead f g) => UnifyHead (f a :: k2) (gb :: k2) Source # | |
Defined in Data.Generics.Internal.Families.Changing |
type family HasTotalFieldP (field :: Symbol) f :: Maybe Type where ... Source #
Equations
HasTotalFieldP field (S1 (MetaSel (Just field) _ _ _) (Rec0 t)) = Just t | |
HasTotalFieldP field (l :*: r) = Alt (HasTotalFieldP field l) (HasTotalFieldP field r) | |
HasTotalFieldP field (l :+: r) = Both (HasTotalFieldP field l) (HasTotalFieldP field r) | |
HasTotalFieldP field (S1 _ _) = Nothing | |
HasTotalFieldP field (C1 _ f) = HasTotalFieldP field f | |
HasTotalFieldP field (D1 _ f) = HasTotalFieldP field f | |
HasTotalFieldP field (K1 _ _) = Nothing | |
HasTotalFieldP field U1 = Nothing | |
HasTotalFieldP field V1 = Nothing |
type family HasTotalTypeP (typ :: Type) f :: Maybe Type where ... Source #
Equations
HasTotalTypeP typ (S1 _ (K1 _ typ)) = Just typ | |
HasTotalTypeP typ (l :*: r) = Alt (HasTotalTypeP typ l) (HasTotalTypeP typ r) | |
HasTotalTypeP typ (l :+: r) = Both (HasTotalTypeP typ l) (HasTotalTypeP typ r) | |
HasTotalTypeP typ (S1 _ _) = Nothing | |
HasTotalTypeP typ (C1 _ f) = HasTotalTypeP typ f | |
HasTotalTypeP typ (D1 _ f) = HasTotalTypeP typ f | |
HasTotalTypeP typ (K1 _ _) = Nothing | |
HasTotalTypeP typ U1 = Nothing | |
HasTotalTypeP typ V1 = Nothing |
type family HasTotalPositionP (pos :: Nat) f :: Maybe Type where ... Source #
Equations
HasTotalPositionP pos (S1 _ (K1 (Pos pos) t)) = Just t | |
HasTotalPositionP pos (l :*: r) = Alt (HasTotalPositionP pos l) (HasTotalPositionP pos r) | |
HasTotalPositionP pos (l :+: r) = Both (HasTotalPositionP pos l) (HasTotalPositionP pos r) | |
HasTotalPositionP pos (S1 _ _) = Nothing | |
HasTotalPositionP pos (C1 _ f) = HasTotalPositionP pos f | |
HasTotalPositionP pos (D1 _ f) = HasTotalPositionP pos f | |
HasTotalPositionP pos (K1 _ _) = Nothing | |
HasTotalPositionP pos U1 = Nothing | |
HasTotalPositionP pos V1 = Nothing |
type family HasPartialTypeP a f :: Bool where ... Source #
Equations
HasPartialTypeP t (l :+: r) = HasPartialTypeP t l || HasPartialTypeP t r | |
HasPartialTypeP t (C1 m f) = t == GTypes f | |
HasPartialTypeP t (M1 _ _ f) = HasPartialTypeP t f | |
HasPartialTypeP t _ = False |
type family CollectTotalType t f :: TypeStat where ... Source #
Equations
CollectTotalType t (C1 (MetaCons ctor _ _) f) = AddToStat ctor (CountType t f) EmptyStat | |
CollectTotalType t (M1 _ _ r) = CollectTotalType t r | |
CollectTotalType t (l :+: r) = MergeStat (CollectTotalType t l) (CollectTotalType t r) |
type family CollectPartialType t f :: [Symbol] where ... Source #
Equations
CollectPartialType t (l :+: r) = CollectPartialType t l ++ CollectPartialType t r | |
CollectPartialType t (C1 (MetaCons ctor _ _) f) = If (t == GTypes f) '[ctor] '[] | |
CollectPartialType t (D1 _ f) = CollectPartialType t f |
type family CollectField t f :: TypeStat where ... Source #
Equations
CollectField t (C1 (MetaCons ctor _ _) f) = AddToStat ctor (CountField t f) EmptyStat | |
CollectField t (M1 _ _ r) = CollectField t r | |
CollectField t (l :+: r) = MergeStat (CollectField t l) (CollectField t r) |
type family CollectFieldsOrdered (r :: * -> *) :: [Symbol] where ... Source #
Equations
CollectFieldsOrdered (l :*: r) = Merge (CollectFieldsOrdered l) (CollectFieldsOrdered r) | |
CollectFieldsOrdered (S1 (MetaSel (Just name) _ _ _) _) = '[name] | |
CollectFieldsOrdered (M1 _ m a) = CollectFieldsOrdered a | |
CollectFieldsOrdered _ = '[] |
Constructors
TypeStat | |
Fields
|
type family ShowSymbols (ctors :: [Symbol]) :: ErrorMessage where ... Source #
Equations
ShowSymbols '[] = Text "" | |
ShowSymbols (c ': cs) = (Text "\8226 " :<>: Text c) :$$: ShowSymbols cs |
type family LookupParam (a :: k) (p :: Nat) :: Maybe Nat where ... Source #
Equations
LookupParam (param (n :: Nat)) m = Nothing | |
LookupParam (a (_ (m :: Nat))) n = IfEq m n (Just 0) (MaybeAdd (LookupParam a n) 1) | |
LookupParam (a _) n = MaybeAdd (LookupParam a n) 1 | |
LookupParam a _ = Nothing |
class UnifyHead (a :: k) (b :: k) Source #
Ensure that the types a
and b
are both applications of the same
constructor. The arguments may be different.
Instances
a ~ b => UnifyHead (a :: k) (b :: k) Source # | |
Defined in Data.Generics.Internal.Families.Changing | |
(gb ~ g b, UnifyHead f g) => UnifyHead (f a :: k2) (gb :: k2) Source # | |
Defined in Data.Generics.Internal.Families.Changing |
type family CollectTotalType t f :: TypeStat where ... Source #
Equations
CollectTotalType t (C1 (MetaCons ctor _ _) f) = AddToStat ctor (CountType t f) EmptyStat | |
CollectTotalType t (M1 _ _ r) = CollectTotalType t r | |
CollectTotalType t (l :+: r) = MergeStat (CollectTotalType t l) (CollectTotalType t r) |
type family CollectPartialType t f :: [Symbol] where ... Source #
Equations
CollectPartialType t (l :+: r) = CollectPartialType t l ++ CollectPartialType t r | |
CollectPartialType t (C1 (MetaCons ctor _ _) f) = If (t == GTypes f) '[ctor] '[] | |
CollectPartialType t (D1 _ f) = CollectPartialType t f |
type family CollectField t f :: TypeStat where ... Source #
Equations
CollectField t (C1 (MetaCons ctor _ _) f) = AddToStat ctor (CountField t f) EmptyStat | |
CollectField t (M1 _ _ r) = CollectField t r | |
CollectField t (l :+: r) = MergeStat (CollectField t l) (CollectField t r) |
type family CollectFieldsOrdered (r :: * -> *) :: [Symbol] where ... Source #
Equations
CollectFieldsOrdered (l :*: r) = Merge (CollectFieldsOrdered l) (CollectFieldsOrdered r) | |
CollectFieldsOrdered (S1 (MetaSel (Just name) _ _ _) _) = '[name] | |
CollectFieldsOrdered (M1 _ m a) = CollectFieldsOrdered a | |
CollectFieldsOrdered _ = '[] |
Constructors
TypeStat | |
Fields
|
type family HasTotalFieldP (field :: Symbol) f :: Maybe Type where ... Source #
Equations
HasTotalFieldP field (S1 (MetaSel (Just field) _ _ _) (Rec0 t)) = Just t | |
HasTotalFieldP field (l :*: r) = Alt (HasTotalFieldP field l) (HasTotalFieldP field r) | |
HasTotalFieldP field (l :+: r) = Both (HasTotalFieldP field l) (HasTotalFieldP field r) | |
HasTotalFieldP field (S1 _ _) = Nothing | |
HasTotalFieldP field (C1 _ f) = HasTotalFieldP field f | |
HasTotalFieldP field (D1 _ f) = HasTotalFieldP field f | |
HasTotalFieldP field (K1 _ _) = Nothing | |
HasTotalFieldP field U1 = Nothing | |
HasTotalFieldP field V1 = Nothing |
type family HasTotalTypeP (typ :: Type) f :: Maybe Type where ... Source #
Equations
HasTotalTypeP typ (S1 _ (K1 _ typ)) = Just typ | |
HasTotalTypeP typ (l :*: r) = Alt (HasTotalTypeP typ l) (HasTotalTypeP typ r) | |
HasTotalTypeP typ (l :+: r) = Both (HasTotalTypeP typ l) (HasTotalTypeP typ r) | |
HasTotalTypeP typ (S1 _ _) = Nothing | |
HasTotalTypeP typ (C1 _ f) = HasTotalTypeP typ f | |
HasTotalTypeP typ (D1 _ f) = HasTotalTypeP typ f | |
HasTotalTypeP typ (K1 _ _) = Nothing | |
HasTotalTypeP typ U1 = Nothing | |
HasTotalTypeP typ V1 = Nothing |
type family HasTotalPositionP (pos :: Nat) f :: Maybe Type where ... Source #
Equations
HasTotalPositionP pos (S1 _ (K1 (Pos pos) t)) = Just t | |
HasTotalPositionP pos (l :*: r) = Alt (HasTotalPositionP pos l) (HasTotalPositionP pos r) | |
HasTotalPositionP pos (l :+: r) = Both (HasTotalPositionP pos l) (HasTotalPositionP pos r) | |
HasTotalPositionP pos (S1 _ _) = Nothing | |
HasTotalPositionP pos (C1 _ f) = HasTotalPositionP pos f | |
HasTotalPositionP pos (D1 _ f) = HasTotalPositionP pos f | |
HasTotalPositionP pos (K1 _ _) = Nothing | |
HasTotalPositionP pos U1 = Nothing | |
HasTotalPositionP pos V1 = Nothing |
type family HasPartialTypeP a f :: Bool where ... Source #
Equations
HasPartialTypeP t (l :+: r) = HasPartialTypeP t l || HasPartialTypeP t r | |
HasPartialTypeP t (C1 m f) = t == GTypes f | |
HasPartialTypeP t (M1 _ _ f) = HasPartialTypeP t f | |
HasPartialTypeP t _ = False |
Instances
HasField_ f (Void1 a) (Void1 b) a b Source # | |
HasField f (Void1 a) (Void1 b) a b Source # | |
HasParam p (Void1 a) (Void1 b) a b Source # | |
Defined in Data.Generics.Product.Param | |
HasPosition_ f (Void1 a) (Void1 b) a b Source # | |
HasPosition f (Void1 a) (Void1 b) a b Source # | |
AsConstructor_ ctor (Void1 a) (Void1 b) a b Source # | |
AsConstructor ctor (Void1 a) (Void1 b) a b Source # | |
class GAsConstructor (ctor :: Symbol) s t a b | ctor s -> a, ctor t -> b where Source #
As AsConstructor
but over generic representations as defined by
GHC.Generics.
Instances
GSumAsConstructor ctor (HasCtorP ctor l) l r l' r' a b => GAsConstructor ctor (l :+: r) (l' :+: r') a b Source # | |
GAsConstructor ctor f f' a b => GAsConstructor ctor (M1 D meta f) (M1 D meta f') a b Source # | |
(GIsList f f as as, GIsList g g bs bs, ListTuple a as, ListTuple b bs) => GAsConstructor ctor (M1 C (MetaCons ctor fixity fields) f) (M1 C (MetaCons ctor fixity fields) g) a b Source # | |
type GAsConstructor' ctor s a = GAsConstructor ctor s s a a Source #
class GAsType (f :: Type -> Type) (as :: [Type]) where Source #
As AsType
but over generic representations as defined by GHC.Generics.
class GAsSubtype (subf :: Type -> Type) (supf :: Type -> Type) where Source #
As AsSubtype
but over generic representations as defined by
GHC.Generics.
Instances
(GSplash sub sup, GDowncast sub sup) => GAsSubtype sub sup Source # | |
Defined in Data.Generics.Sum.Internal.Subtype |
type family CRep (a :: Type) :: G where ... Source #
In-order labeling of the generic tree with the field positions
We replace the (K1 R a) nodes with (K1 (Pos n) a), where n
is the position
of the field in question in the data type. This is convenient, because we
can reuse all the existing functions as long as they are polymorphic in the
first parameter of K1
.
class GLens (pred :: Pred) (s :: Type -> Type) (t :: Type -> Type) a b | s pred -> a, t pred -> b where Source #
Instances
GLens pred (K1 r a :: Type -> Type) (K1 r b :: Type -> Type) a b Source # | |
(GLens pred l l' a b, GLens pred r r' a b) => GLens pred (l :+: r) (l' :+: r') a b Source # | |
GProductLens (Eval pred l) pred l r l' r' a b => GLens pred (l :*: r) (l' :*: r') a b Source # | |
GLens pred f g a b => GLens pred (M1 m meta f) (M1 m meta g) a b Source # | |
class GUpcast (sub :: Type -> Type) (sup :: Type -> Type) where Source #
Instances
GUpcast sub sup => GUpcast sub (D1 c sup) Source # | |
Defined in Data.Generics.Product.Internal.Subtype | |
GUpcast sub sup => GUpcast sub (C1 c sup) Source # | |
Defined in Data.Generics.Product.Internal.Subtype | |
GLens' (HasTotalFieldPSym field) sub t => GUpcast sub (S1 (MetaSel (Just field) p f b) (Rec0 t)) Source # | |
(GUpcast sub a, GUpcast sub b) => GUpcast sub (a :*: b) Source # | |
Defined in Data.Generics.Product.Internal.Subtype |
class GSmash sub sup where Source #
Instances
GSmash sub sup => GSmash (D1 c sub :: k -> Type) (sup :: k -> Type) Source # | |
GSmash sub sup => GSmash (C1 c sub :: k -> Type) (sup :: k -> Type) Source # | |
(GSmash a sup, GSmash b sup) => GSmash (a :*: b :: k -> Type) (sup :: k -> Type) Source # | |
(leaf ~ S1 (MetaSel (Just field) p f b) t, GSmashLeaf leaf sup (HasTotalFieldP field sup)) => GSmash (S1 (MetaSel (Just field) p f b) t :: k -> Type) (sup :: k -> Type) Source # | |
class GHasConstraints (c :: * -> * -> Constraint) s t where Source #
Methods
gconstraints :: TraversalC c (s x) (t x) Source #
Instances
class GHasConstraints' (c :: * -> Constraint) (f :: * -> *) where Source #
Constrained traversal.
Methods
gconstraints' :: forall g x. Applicative g => (forall a. c a => a -> g a) -> f x -> g (f x) Source #
Instances
class GIsList (f :: Type -> Type) (g :: Type -> Type) (as :: [Type]) (bs :: [Type]) | f -> as, g -> bs, bs f -> g, as g -> f where Source #
Minimal complete definition
Instances
GIsList (U1 :: Type -> Type) (U1 :: Type -> Type) ([] :: [Type]) ([] :: [Type]) Source # | |
GIsList (Rec0 a) (Rec0 b) (a ': ([] :: [Type])) (b ': ([] :: [Type])) Source # | |
(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' Source # | |
GIsList f g as bs => GIsList (M1 t meta f) (M1 t meta g) as bs Source # | |
class IndexList (i :: Nat) as bs a b | i as -> a, i bs -> b, i as b -> bs, i bs a -> as where Source #
class ListTuple (tuple :: Type) (as :: [Type]) | as -> tuple where Source #
Minimal complete definition
Associated Types
type ListToTuple as :: Type Source #
Methods
tupled :: Iso' (HList as) tuple Source #
tupleToList :: tuple -> HList as Source #
listToTuple :: HList as -> tuple Source #
Instances
ListTuple () ([] :: [Type]) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple [] :: Type Source # | |
ListTuple a (a ': ([] :: [Type])) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': []) :: Type Source # | |
ListTuple (a, b) (a ': (b ': ([] :: [Type]))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': [])) :: Type Source # | |
ListTuple (a, b, c) (a ': (b ': (c ': ([] :: [Type])))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': []))) :: Type Source # | |
ListTuple (a, b, c, d) (a ': (b ': (c ': (d ': ([] :: [Type]))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': [])))) :: Type Source # | |
ListTuple (a, b, c, d, e) (a ': (b ': (c ': (d ': (e ': ([] :: [Type])))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': []))))) :: Type Source # | |
ListTuple (a, b, c, d, e, f) (a ': (b ': (c ': (d ': (e ': (f ': ([] :: [Type]))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': [])))))) :: Type Source # | |
ListTuple (a, b, c, d, e, f, g) (a ': (b ': (c ': (d ': (e ': (f ': (g ': ([] :: [Type])))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': []))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': [])))))))) (a, b, c, d, e, f, g) Source # tupleToList :: (a, b, c, d, e, f, g) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': []))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': []))))))) -> (a, b, c, d, e, f, g) Source # | |
ListTuple (a, b, c, d, e, f, g, h) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': ([] :: [Type]))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': [])))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': []))))))))) (a, b, c, d, e, f, g, h) Source # tupleToList :: (a, b, c, d, e, f, g, h) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': [])))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': [])))))))) -> (a, b, c, d, e, f, g, h) Source # | |
ListTuple (a, b, c, d, e, f, g, h, j) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': ([] :: [Type])))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': []))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': [])))))))))) (a, b, c, d, e, f, g, h, j) Source # tupleToList :: (a, b, c, d, e, f, g, h, j) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': []))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': []))))))))) -> (a, b, c, d, e, f, g, h, j) Source # | |
ListTuple (a, b, c, d, e, f, g, h, j, k) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': ([] :: [Type]))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': [])))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': []))))))))))) (a, b, c, d, e, f, g, h, j, k) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': [])))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': [])))))))))) -> (a, b, c, d, e, f, g, h, j, k) Source # | |
ListTuple (a, b, c, d, e, f, g, h, j, k, l) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': ([] :: [Type])))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': []))))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': [])))))))))))) (a, b, c, d, e, f, g, h, j, k, l) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': []))))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': []))))))))))) -> (a, b, c, d, e, f, g, h, j, k, l) Source # | |
ListTuple (a, b, c, d, e, f, g, h, j, k, l, m) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': ([] :: [Type]))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': [])))))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': []))))))))))))) (a, b, c, d, e, f, g, h, j, k, l, m) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': [])))))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': [])))))))))))) -> (a, b, c, d, e, f, g, h, j, k, l, m) Source # | |
ListTuple (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 ': ([] :: [Type])))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': []))))))))))))) :: Type Source # Methods tupled :: Iso' (HList (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) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m, n) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': []))))))))))))) Source # listToTuple :: HList (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) Source # | |
ListTuple (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 ': ([] :: [Type]))))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': [])))))))))))))) :: Type Source # Methods tupled :: Iso' (HList (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) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m, n, o) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': [])))))))))))))) Source # listToTuple :: HList (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) Source # | |
ListTuple (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 ': ([] :: [Type])))))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': []))))))))))))))) :: Type Source # Methods tupled :: Iso' (HList (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) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': []))))))))))))))) Source # listToTuple :: HList (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) Source # | |
ListTuple (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 ': ([] :: [Type]))))))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': [])))))))))))))))) :: Type Source # Methods tupled :: Iso' (HList (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) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': [])))))))))))))))) Source # listToTuple :: HList (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) Source # | |
ListTuple (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 ': ([] :: [Type])))))))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': []))))))))))))))))) :: Type Source # Methods tupled :: Iso' (HList (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) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': []))))))))))))))))) Source # listToTuple :: HList (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) Source # | |
ListTuple (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 ': ([] :: [Type]))))))))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': (s ': [])))))))))))))))))) :: Type Source # Methods tupled :: Iso' (HList (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) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r, s) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': (s ': [])))))))))))))))))) Source # listToTuple :: HList (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) Source # |
type family TupleToList a where ... Source #
Equations
TupleToList () = '[] | |
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] |