Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Weakening for generic data types.
Documentation
class GWeaken s w where Source #
Instances
GWeaken (U1 :: k -> Type) (U1 :: k -> Type) Source # | Nothing to do for empty constructors. |
GWeaken (V1 :: k -> Type) (V1 :: k -> Type) Source # | Nothing to do for empty datatypes. |
GWeaken (Rec0 s :: k -> Type) (Rec0 s :: k -> Type) Source # | Special case: if source and target types are equal, copy the value through. |
Weaken s w => GWeaken (Rec0 s :: k -> Type) (Rec0 w :: k -> Type) Source # | Weaken a field using the existing |
(GWeaken ls lw, GWeaken rs rw) => GWeaken (ls :*: rs :: k -> Type) (lw :*: rw :: k -> Type) Source # | Weaken product types by weakening left and right. |
(GWeaken ls lw, GWeaken rs rw) => GWeaken (ls :+: rs :: k -> Type) (lw :+: rw :: k -> Type) Source # | Weaken sum types by weakening left or right. |
GWeaken s w => GWeaken (M1 is ms s :: k -> Type) (M1 iw mw w :: k -> Type) Source # | Strip all meta. |