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 | |
|