Portability | see LANGUAGE pragmas (... GHC) |
---|---|
Stability | experimental |
Maintainer | nicolas.frisby@gmail.com |
Definitions on top of the basic yoko
reflection concepts Data.Yoko.ReflectBase.
- type SiblingsU t = Uni (Siblings t)
- type OnlyDC t = UnN (DCs t)
- type family UnN a
- uniqueDC :: (DT t, N (OnlyDC t) ~ DCs t, t ~ Range (OnlyDC t)) => t -> RMNI (OnlyDC t)
- uniqueRMN :: (Finite u, N (UnN (Inhabitants u)) ~ Inhabitants u) => AnRMN m u -> RMN m (UnN (Inhabitants u))
- uniqueRMN' :: (Finite (DCOf (Range dc)), N dc ~ DCs (Range dc)) => AnRMN m (DCOf (Range dc)) -> RMN m dc
- data IsDC dc where
- newtype RMNTo m b dc = RMNTo {}
- dcDispatch :: DT t => NT (DCOf t) (RMNTo IdM b) -> t -> b
- dcDispatch' :: DT t => NT (DCOf t) (RMNTo IdM b) -> Disbanded IdM t -> b
- data TagRepIs tag c dc where
- bandDCs :: DT t => Disbanded IdM t -> t
- fr_DCOf :: DCOf t dc -> RMNI dc -> t
- module Data.Yoko.ReflectBase
Documentation
uniqueRMN :: (Finite u, N (UnN (Inhabitants u)) ~ Inhabitants u) => AnRMN m u -> RMN m (UnN (Inhabitants u))Source
uniqueRMN' :: (Finite (DCOf (Range dc)), N dc ~ DCs (Range dc)) => AnRMN m (DCOf (Range dc)) -> RMN m dcSource
dcDispatch :: DT t => NT (DCOf t) (RMNTo IdM b) -> t -> bSource
Just a specialization: dcDispatch = (. disband) . dcDispatch'
.
data TagRepIs tag c dc whereSource
A fundamental notion of identity in yoko
, the TagRepIs tag c
universe
contains all constructor types dc
where (Tag dc ~ tag, c ~ Rep dc)
.
type instance Pred (TagRepIs tag c) dc = And (IsEQ (Compare (Tag dc) tag)) (IsEQ (Compare (Rep dc) c))
module Data.Yoko.ReflectBase