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.Internal.Families.Has
Description
Documentation
type family HasTotalFieldP (field :: Symbol) (f :: k -> Type) :: Maybe Type where ... #
Equations
HasTotalFieldP field (S1 ('MetaSel ('Just field) _1 _2 _3) (Rec0 t) :: k -> Type) = 'Just t | |
HasTotalFieldP field (l :*: r :: k -> Type) = Alt (HasTotalFieldP field l) (HasTotalFieldP field r) | |
HasTotalFieldP field (l :+: r :: k -> Type) = Both (HasTotalFieldP field l) (HasTotalFieldP field r) | |
HasTotalFieldP field (S1 _1 _2 :: k -> Type) = 'Nothing :: Maybe Type | |
HasTotalFieldP field (C1 _1 f :: k -> Type) = HasTotalFieldP field f | |
HasTotalFieldP field (D1 _1 f :: k -> Type) = HasTotalFieldP field f | |
HasTotalFieldP field (K1 _1 _2 :: k -> Type) = 'Nothing :: Maybe Type | |
HasTotalFieldP field (U1 :: k -> Type) = 'Nothing :: Maybe Type | |
HasTotalFieldP field (V1 :: k -> Type) = 'Nothing :: Maybe Type |
type family HasTotalTypeP typ (f :: k -> Type) :: Maybe Type where ... #
Equations
HasTotalTypeP typ (S1 _1 (K1 _2 typ :: k -> Type) :: k -> Type) = 'Just typ | |
HasTotalTypeP typ (l :*: r :: k -> Type) = Alt (HasTotalTypeP typ l) (HasTotalTypeP typ r) | |
HasTotalTypeP typ (l :+: r :: k -> Type) = Both (HasTotalTypeP typ l) (HasTotalTypeP typ r) | |
HasTotalTypeP typ (S1 _1 _2 :: k -> Type) = 'Nothing :: Maybe Type | |
HasTotalTypeP typ (C1 _1 f :: k -> Type) = HasTotalTypeP typ f | |
HasTotalTypeP typ (D1 _1 f :: k -> Type) = HasTotalTypeP typ f | |
HasTotalTypeP typ (K1 _1 _2 :: k -> Type) = 'Nothing :: Maybe Type | |
HasTotalTypeP typ (U1 :: k -> Type) = 'Nothing :: Maybe Type | |
HasTotalTypeP typ (V1 :: k -> Type) = 'Nothing :: Maybe Type |
type family HasTotalPositionP (pos :: Nat) (f :: k -> Type) :: Maybe Type where ... #
Equations
HasTotalPositionP pos (S1 _1 (K1 (Pos pos) t :: k -> Type) :: k -> Type) = 'Just t | |
HasTotalPositionP pos (l :*: r :: k -> Type) = Alt (HasTotalPositionP pos l) (HasTotalPositionP pos r) | |
HasTotalPositionP pos (l :+: r :: k -> Type) = Both (HasTotalPositionP pos l) (HasTotalPositionP pos r) | |
HasTotalPositionP pos (S1 _1 _2 :: k -> Type) = 'Nothing :: Maybe Type | |
HasTotalPositionP pos (C1 _1 f :: k -> Type) = HasTotalPositionP pos f | |
HasTotalPositionP pos (D1 _1 f :: k -> Type) = HasTotalPositionP pos f | |
HasTotalPositionP pos (K1 _1 _2 :: k -> Type) = 'Nothing :: Maybe Type | |
HasTotalPositionP pos (U1 :: k -> Type) = 'Nothing :: Maybe Type | |
HasTotalPositionP pos (V1 :: k -> Type) = 'Nothing :: Maybe Type |
type family HasPartialTypeP (a :: [Type]) (f :: Type -> Type) :: Bool where ... #
Equations
HasPartialTypeP t (l :+: r) = HasPartialTypeP t l || HasPartialTypeP t r | |
HasPartialTypeP t (C1 m f) = t == GTypes f | |
HasPartialTypeP t (M1 _1 _2 f) = HasPartialTypeP t f | |
HasPartialTypeP t _1 = 'False |