Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Aztecs.ECS.Access.Internal
Documentation
type family ValidAccessInput (accesses :: [Type]) where ... Source #
Equations
ValidAccessInput accesses = (ValidAccess accesses, HasDuplicateWrites (WriteComponents accesses) ~ 'False) |
type family HasDuplicateWrites (components :: [Type]) :: Bool where ... Source #
Equations
HasDuplicateWrites ('[] :: [Type]) = 'False | |
HasDuplicateWrites (c ': rest) = Or (Contains c rest) (HasDuplicateWrites rest) |
class Functor m => Access (m :: Type -> Type) a where Source #
Minimal complete definition
Nothing
Associated Types
type AccessType a :: [Type] Source #
Methods
default access :: (Generic a, GenericAccess m (Rep a), ValidAccessInput (GenericAccessType (Rep a)), AccessType a ~ GenericAccessType (Rep a)) => m a Source #
Instances
class GenericAccess (m :: k -> Type) (f :: k1 -> k) where Source #
Associated Types
type GenericAccessType (f :: k1 -> k) :: [Type] Source #
Methods
genericAccess :: forall (p :: k1). ValidAccessInput (GenericAccessType f) => m (f p) Source #
Instances
Applicative m => GenericAccess (m :: Type -> Type) (U1 :: k -> Type) Source # | |||||
Defined in Aztecs.ECS.Access.Internal Associated Types
Methods genericAccess :: forall (p :: k). ValidAccessInput (GenericAccessType (U1 :: k -> Type)) => m (U1 p) Source # | |||||
(Applicative m, GenericAccess m f, GenericAccess m g, ValidAccessInput (GenericAccessType f), ValidAccessInput (GenericAccessType g)) => GenericAccess (m :: Type -> Type) (f :*: g :: k -> Type) Source # | |||||
Defined in Aztecs.ECS.Access.Internal Associated Types
Methods genericAccess :: forall (p :: k). ValidAccessInput (GenericAccessType (f :*: g)) => m ((f :*: g) p) Source # | |||||
Access m c => GenericAccess (m :: Type -> Type) (K1 i c :: k -> Type) Source # | |||||
Defined in Aztecs.ECS.Access.Internal Associated Types
Methods genericAccess :: forall (p :: k). ValidAccessInput (GenericAccessType (K1 i c :: k -> Type)) => m (K1 i c p) Source # | |||||
(Functor m, GenericAccess m f) => GenericAccess (m :: Type -> Type) (M1 i c f :: k -> Type) Source # | |||||
Defined in Aztecs.ECS.Access.Internal Associated Types
Methods genericAccess :: forall (p :: k). ValidAccessInput (GenericAccessType (M1 i c f)) => m (M1 i c f p) Source # |
deriveAccess :: forall {k} a m (cs :: k). (Functor m, Generic a, GenericAccess m (Rep a), ValidAccessInput (GenericAccessType (Rep a))) => m a Source #
type family DeriveAccessType (rep :: Type -> Type) :: [Type] where ... Source #
Equations
DeriveAccessType rep = GenericAccessType rep |