| Safe Haskell | Safe-Inferred |
|---|---|
| Language | GHC2021 |
Plutarch.Internal.PlutusType
Synopsis
- class PlutusType (a :: S -> Type)
- type PInnermost a = PInnermost' (PInner a) a
- type family PlutusTypeStratConstraint strategy :: (S -> Type) -> Constraint
- pcon' :: forall s. PlutusType a => a s -> Term s (PInner a)
- pmatch' :: forall s b. PlutusType a => Term s (PInner a) -> (a s -> Term s b) -> Term s b
- pmatch :: PlutusType a => Term s a -> (a s -> Term s b) -> Term s b
- pcon :: PlutusType a => a s -> Term s a
- type family PInner a :: S -> Type
- class PlutusTypeStrat (strategy :: Type)
- class (PInner a ~ DerivedPInner (DPTStrat a) a, PlutusTypeStrat (DPTStrat a), PlutusTypeStratConstraint (DPTStrat a) a, PlutusType a) => DerivePlutusType (a :: S -> Type)
- type family DPTStrat a :: Type
- type family DerivedPInner strategy (a :: S -> Type) :: S -> Type
- derivedPCon :: forall a s. (PlutusTypeStrat strategy, DerivePlutusType a, DPTStrat a ~ strategy) => a s -> Term s (DerivedPInner strategy a)
- derivedPMatch :: forall a s b. (PlutusTypeStrat strategy, DerivePlutusType a, DPTStrat a ~ strategy) => Term s (DerivedPInner strategy a) -> (a s -> Term s b) -> Term s b
- newtype DeriveNewtypePlutusType (a :: S -> Type) s = DeriveNewtypePlutusType {
- unDeriveNewtypePlutusType :: a s
- newtype DeriveFakePlutusType (a :: S -> Type) (s :: S) = DeriveFakePlutusType (a s)
Documentation
class PlutusType (a :: S -> Type) Source #
Instances
type PInnermost a = PInnermost' (PInner a) a Source #
type family PlutusTypeStratConstraint strategy :: (S -> Type) -> Constraint Source #
Instances
| type PlutusTypeStratConstraint PlutusTypeData Source # | |
Defined in Plutarch.DataRepr.Internal | |
| type PlutusTypeStratConstraint PlutusTypeNewtype Source # | |
Defined in Plutarch.Internal.Newtype | |
| type PlutusTypeStratConstraint PlutusTypeScott Source # | |
Defined in Plutarch.Internal.ScottEncoding | |
pmatch :: PlutusType a => Term s a -> (a s -> Term s b) -> Term s b Source #
Pattern match over Plutarch Terms via a Haskell datatype
pcon :: PlutusType a => a s -> Term s a Source #
Construct a Plutarch Term via a Haskell datatype
type family PInner a :: S -> Type Source #
Instances
class PlutusTypeStrat (strategy :: Type) Source #
Deprecated: Use the new mechanisms instead
Minimal complete definition
Instances
class (PInner a ~ DerivedPInner (DPTStrat a) a, PlutusTypeStrat (DPTStrat a), PlutusTypeStratConstraint (DPTStrat a) a, PlutusType a) => DerivePlutusType (a :: S -> Type) Source #
Deprecated: Use the new mechanisms instead
type family DerivedPInner strategy (a :: S -> Type) :: S -> Type Source #
Instances
| type DerivedPInner PlutusTypeData a Source # | |
Defined in Plutarch.DataRepr.Internal | |
| type DerivedPInner PlutusTypeNewtype a Source # | |
Defined in Plutarch.Internal.Newtype | |
| type DerivedPInner PlutusTypeScott a Source # | |
Defined in Plutarch.Internal.ScottEncoding | |
derivedPCon :: forall a s. (PlutusTypeStrat strategy, DerivePlutusType a, DPTStrat a ~ strategy) => a s -> Term s (DerivedPInner strategy a) Source #
derivedPMatch :: forall a s b. (PlutusTypeStrat strategy, DerivePlutusType a, DPTStrat a ~ strategy) => Term s (DerivedPInner strategy a) -> (a s -> Term s b) -> Term s b Source #
newtype DeriveNewtypePlutusType (a :: S -> Type) s Source #
Since: 1.10.0
Constructors
| DeriveNewtypePlutusType | |
Fields
| |
Instances
| (pt ~ UnTermSingle (Head (Head (Code (a (Any :: S))))), forall (s :: S). H s a pt) => PlutusType (DeriveNewtypePlutusType a) Source # | |
Defined in Plutarch.Internal.PlutusType Methods pcon' :: forall (s :: S). DeriveNewtypePlutusType a s -> Term s (PInner (DeriveNewtypePlutusType a)) Source # pmatch' :: forall (s :: S) (b :: S -> Type). Term s (PInner (DeriveNewtypePlutusType a)) -> (DeriveNewtypePlutusType a s -> Term s b) -> Term s b Source # | |
| type PInner (DeriveNewtypePlutusType a) Source # | |
Defined in Plutarch.Internal.PlutusType | |
newtype DeriveFakePlutusType (a :: S -> Type) (s :: S) Source #
This is a cursed derivation strategy that will give you PlutusType with no questions asked. This is occasionally helpful
for deriving PlutusType for another derivation strategy wrapper whose target instance requires PlutusType as superclass.
See PLiftable
Constructors
| DeriveFakePlutusType (a s) |
Instances
| PlutusType (DeriveFakePlutusType a) Source # | |
Defined in Plutarch.Internal.PlutusType Methods pcon' :: forall (s :: S). DeriveFakePlutusType a s -> Term s (PInner (DeriveFakePlutusType a)) Source # pmatch' :: forall (s :: S) (b :: S -> Type). Term s (PInner (DeriveFakePlutusType a)) -> (DeriveFakePlutusType a s -> Term s b) -> Term s b Source # | |
| type PInner (DeriveFakePlutusType a) Source # | |
Defined in Plutarch.Internal.PlutusType | |