Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.Ecstasy.Internal.Deriving
Synopsis
- class GHoistWorld (t :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) (a :: Type -> Type) (b :: Type -> Type) where
- gHoistWorld :: a x -> b x
- class GGraft (a :: Type -> Type) (b :: Type -> Type) where
- gGraft :: a x -> b x -> a x
- class GConvertSetter (a :: Type -> Type) (b :: Type -> Type) where
- gConvertSetter :: a x -> b x
- class GGetEntity (m :: Type -> Type) (a :: Type -> Type) (b :: Type -> Type) where
- gGetEntity :: a x -> Int -> Codensity m (b x)
- class GSetEntity (m :: Type -> Type) (a :: Type -> Type) (b :: Type -> Type) where
- gSetEntity :: a x -> Int -> b x -> Codensity m (b x)
- def :: forall (keep :: Bool) a. (Generic a, GDefault keep (Rep a)) => a
- class GDefault (keep :: Bool) (f :: Type -> Type) where
- gdef :: f a
Documentation
class GHoistWorld (t :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) (a :: Type -> Type) (b :: Type -> Type) where Source #
Utility class for implementing hoistStorage
.
Methods
gHoistWorld :: a x -> b x Source #
Instances
(Applicative (t m), GHoistWorld t m a c, GHoistWorld t m b d) => GHoistWorld t m (a :*: b) (c :*: d) Source # | |
Defined in Data.Ecstasy.Internal.Deriving Methods gHoistWorld :: (a :*: b) x -> (c :*: d) x Source # | |
(MonadTrans t, Functor (t m), Monad m) => GHoistWorld t m (K1 i (VTable m a) :: Type -> Type) (K1 i' (VTable (t m) a) :: Type -> Type) Source # | |
Defined in Data.Ecstasy.Internal.Deriving | |
GHoistWorld t m (K1 i a :: Type -> Type) (K1 i' a :: Type -> Type) Source # | |
Defined in Data.Ecstasy.Internal.Deriving Methods gHoistWorld :: K1 i a x -> K1 i' a x Source # | |
(Functor (t m), GHoistWorld t m f f') => GHoistWorld t m (M1 i c f) (M1 i' c' f') Source # | |
Defined in Data.Ecstasy.Internal.Deriving Methods gHoistWorld :: M1 i c f x -> M1 i' c' f' x Source # |
class GGraft (a :: Type -> Type) (b :: Type -> Type) where Source #
Utility class for implementing graftStorage
.
class GConvertSetter (a :: Type -> Type) (b :: Type -> Type) where Source #
Utility class for implementing convertSetter
.
Methods
gConvertSetter :: a x -> b x Source #
Instances
(GConvertSetter a c, GConvertSetter b d) => GConvertSetter (a :*: b) (c :*: d) Source # | |
Defined in Data.Ecstasy.Internal.Deriving Methods gConvertSetter :: (a :*: b) x -> (c :*: d) x Source # | |
GConvertSetter (K1 i (Maybe a) :: Type -> Type) (K1 i' (Update a) :: Type -> Type) Source # | |
Defined in Data.Ecstasy.Internal.Deriving | |
GConvertSetter (K1 i a :: Type -> Type) (K1 i' (Update a) :: Type -> Type) Source # | |
Defined in Data.Ecstasy.Internal.Deriving | |
GConvertSetter (K1 i a :: Type -> Type) (K1 i' (Maybe a) :: Type -> Type) Source # | |
Defined in Data.Ecstasy.Internal.Deriving | |
GConvertSetter f f' => GConvertSetter (M1 i c f) (M1 i' c' f') Source # | |
Defined in Data.Ecstasy.Internal.Deriving Methods gConvertSetter :: M1 i c f x -> M1 i' c' f' x Source # |
class GGetEntity (m :: Type -> Type) (a :: Type -> Type) (b :: Type -> Type) where Source #
Utility class for implementing getEntity
.
Methods
gGetEntity :: a x -> Int -> Codensity m (b x) Source #
Instances
(Applicative m, GGetEntity m a c, GGetEntity m b d) => GGetEntity m (a :*: b) (c :*: d) Source # | |
Defined in Data.Ecstasy.Internal.Deriving | |
Applicative m => GGetEntity m (K1 i (IntMap a) :: Type -> Type) (K1 i' (Maybe a) :: Type -> Type) Source # | |
Defined in Data.Ecstasy.Internal.Deriving | |
Monad m => GGetEntity m (K1 i (VTable m a) :: Type -> Type) (K1 i' (Maybe a) :: Type -> Type) Source # | |
Defined in Data.Ecstasy.Internal.Deriving | |
Applicative m => GGetEntity m (K1 i (Maybe (Int, a)) :: Type -> Type) (K1 i' (Maybe a) :: Type -> Type) Source # | |
(Functor m, GGetEntity m f f') => GGetEntity m (M1 i c f) (M1 i' c' f') Source # | |
Defined in Data.Ecstasy.Internal.Deriving |
class GSetEntity (m :: Type -> Type) (a :: Type -> Type) (b :: Type -> Type) where Source #
Utility class for implementing setEntity
.
Methods
gSetEntity :: a x -> Int -> b x -> Codensity m (b x) Source #
Instances
(Applicative m, GSetEntity m a c, GSetEntity m b d) => GSetEntity m (a :*: b) (c :*: d) Source # | |
Defined in Data.Ecstasy.Internal.Deriving | |
Applicative m => GSetEntity m (K1 i (Update a) :: Type -> Type) (K1 i' (IntMap a) :: Type -> Type) Source # | |
Monad m => GSetEntity m (K1 i (Update a) :: Type -> Type) (K1 i' (VTable m a) :: Type -> Type) Source # | |
Applicative m => GSetEntity m (K1 i (Update a) :: Type -> Type) (K1 i' (Maybe (Int, a)) :: Type -> Type) Source # | |
(Functor m, GSetEntity m f f') => GSetEntity m (M1 i c f) (M1 i' c' f') Source # | |
Defined in Data.Ecstasy.Internal.Deriving |
class GDefault (keep :: Bool) (f :: Type -> Type) where Source #
Utility class for implementing various defaults. The keep
parameter is
used to statically describe whether or not to keep the previous value when
dealing with Update
fields.
Instances
GDefault keep (U1 :: Type -> Type) Source # | |
Defined in Data.Ecstasy.Internal.Deriving | |
GDefault 'False (K1 i (Update c) :: Type -> Type) Source # | |
GDefault 'True (K1 i (Update c) :: Type -> Type) Source # | |
(GDefault keep a, GDefault keep b) => GDefault keep (a :*: b) Source # | |
Defined in Data.Ecstasy.Internal.Deriving | |
GDefault keep (K1 i (IntMap c) :: Type -> Type) Source # | |
GDefault keep (K1 i (Maybe c) :: Type -> Type) Source # | |
(Applicative m, KnownSymbol sym) => GDefault keep (M1 S ('MetaSel ('Just sym) x y z) (K1 i (VTable m a) :: Type -> Type)) Source # | |
GDefault keep f => GDefault keep (M1 i c f) Source # | |
Defined in Data.Ecstasy.Internal.Deriving |