| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Plutarch.Internal.IsData
Synopsis
- class (PInnermostIsData' msg a (PInnermost a), PInnermost a ~ PData) => PInnermostIsData (msg :: Maybe Symbol) (a :: S -> Type)
- class PIsData (a :: S -> Type)
- pfromDataImpl :: forall (s :: S). PIsData a => Term s (PAsData a) -> Term s a
- pdataImpl :: forall (s :: S). PIsData a => Term s a -> Term s PData
- pdata :: forall (a :: S -> Type) (s :: S). PIsData a => Term s a -> Term s (PAsData a)
- pfromData :: forall (a :: S -> Type) (s :: S). PIsData a => Term s (PAsData a) -> Term s a
- pforgetData :: forall (s :: S) (a :: S -> Type). Term s (PAsData a) -> Term s PData
Documentation
class (PInnermostIsData' msg a (PInnermost a), PInnermost a ~ PData) => PInnermostIsData (msg :: Maybe Symbol) (a :: S -> Type) Source #
Instances
| (PInnermostIsData' msg a (PInnermost a), PInnermost a ~ PData) => PInnermostIsData msg a Source # | |
Defined in Plutarch.Internal.IsData | |
class PIsData (a :: S -> Type) Source #
Laws:
- If PSubtype PData a, then pdataImpl a must be pupcast.
- pdataImpl . pupcast . pfromDataImpl ≡ id
- pfromDataImpl . punsafeDowncast . pdataImpl ≡ id