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 |
Structural subtype relationships between product types.
Documentation
type Context a b = ( Generic a, Generic b, GSmash ( Rep a) ( Rep b), GUpcast ( Rep a) ( Rep b), CustomError a b) Source #
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 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 |