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 |
Documentation
type family CollectTotalType t f :: TypeStat where ... Source #
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 #
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 #
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 #
CollectFieldsOrdered (l :*: r) = Merge ( CollectFieldsOrdered l) ( CollectFieldsOrdered r) | |
CollectFieldsOrdered ( S1 (' MetaSel (' Just name) _ _ _) _) = '[name] | |
CollectFieldsOrdered ( M1 _ m a) = CollectFieldsOrdered a | |
CollectFieldsOrdered _ = '[] |
TypeStat | |
|