plutarch-1.3.0
Safe HaskellSafe-Inferred
LanguageGHC2021

Plutarch.Builtin

Synopsis

Documentation

data PData (s :: S) Source #

Instances

Instances details
PEq PData Source # 
Instance details

Defined in Plutarch.Builtin

Methods

(#==) :: forall (s :: S). Term s PData -> Term s PData -> Term s PBool Source #

PIsData PData Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PData) -> Term s PData Source #

pdataImpl :: forall (s :: S). Term s PData -> Term s PData Source #

PlutusType PData Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pcon' :: forall (s :: S). PData s -> Term s (PInner PData) Source #

pmatch' :: forall (s :: S) (b :: PType). Term s (PInner PData) -> (PData s -> Term s b) -> Term s b Source #

PUnsafeLiftDecl PData Source # 
Instance details

Defined in Plutarch.Builtin

Associated Types

type PLifted PData = (r :: Type) Source #

PShow PData Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pshow' :: forall (s :: S). Bool -> Term s PData -> Term s PString Source #

PTryFrom PData PAddress Source # 
Instance details

Defined in Plutarch.Api.V1.Address

Associated Types

type PTryFromExcess PData PAddress :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s PAddress, Reduce (PTryFromExcess PData PAddress s)) -> Term s r) -> Term s r Source #

PTryFrom PData PCredential Source # 
Instance details

Defined in Plutarch.Api.V1.Address

Associated Types

type PTryFromExcess PData PCredential :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s PCredential, Reduce (PTryFromExcess PData PCredential s)) -> Term s r) -> Term s r Source #

PTryFrom PData PStakingCredential Source # 
Instance details

Defined in Plutarch.Api.V1.Address

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s PStakingCredential, Reduce (PTryFromExcess PData PStakingCredential s)) -> Term s r) -> Term s r Source #

PTryFrom PData PTxId Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

Associated Types

type PTryFromExcess PData PTxId :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s PTxId, Reduce (PTryFromExcess PData PTxId s)) -> Term s r) -> Term s r Source #

PTryFrom PData PTxOutRef Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

Associated Types

type PTryFromExcess PData PTxOutRef :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s PTxOutRef, Reduce (PTryFromExcess PData PTxOutRef s)) -> Term s r) -> Term s r Source #

PTryFrom PData PData Source # 
Instance details

Defined in Plutarch.Builtin

Associated Types

type PTryFromExcess PData PData :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s PData, Reduce (PTryFromExcess PData PData s)) -> Term s r) -> Term s r Source #

PTryFrom PData a => PTryFrom PData (PMaybeData a) Source # 
Instance details

Defined in Plutarch.Api.V1.Maybe

Associated Types

type PTryFromExcess PData (PMaybeData a) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PMaybeData a), Reduce (PTryFromExcess PData (PMaybeData a) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PAddress) Source # 
Instance details

Defined in Plutarch.Api.V1.Address

Associated Types

type PTryFromExcess PData (PAsData PAddress) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PAddress), Reduce (PTryFromExcess PData (PAsData PAddress) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PCredential) Source # 
Instance details

Defined in Plutarch.Api.V1.Address

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PCredential), Reduce (PTryFromExcess PData (PAsData PCredential) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PStakingCredential) Source # 
Instance details

Defined in Plutarch.Api.V1.Address

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PStakingCredential), Reduce (PTryFromExcess PData (PAsData PStakingCredential) s)) -> Term s r) -> Term s r Source #

(POrd k, PIsData k, PIsData v, PTryFrom PData (PAsData k), PTryFrom PData (PAsData v)) => PTryFrom PData (PAsData (PMap 'Sorted k v)) Source # 
Instance details

Defined in Plutarch.Api.V1.AssocMap

Associated Types

type PTryFromExcess PData (PAsData (PMap 'Sorted k v)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PMap 'Sorted k v)), Reduce (PTryFromExcess PData (PAsData (PMap 'Sorted k v)) s)) -> Term s r) -> Term s r Source #

(PTryFrom PData (PAsData k), PTryFrom PData (PAsData v)) => PTryFrom PData (PAsData (PMap 'Unsorted k v)) Source # 
Instance details

Defined in Plutarch.Api.V1.AssocMap

Associated Types

type PTryFromExcess PData (PAsData (PMap 'Unsorted k v)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PMap 'Unsorted k v)), Reduce (PTryFromExcess PData (PAsData (PMap 'Unsorted k v)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PPubKeyHash) Source # 
Instance details

Defined in Plutarch.Api.V1.Crypto

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PPubKeyHash), Reduce (PTryFromExcess PData (PAsData PPubKeyHash) s)) -> Term s r) -> Term s r Source #

PTryFrom PData a => PTryFrom PData (PAsData (PMaybeData a)) Source # 
Instance details

Defined in Plutarch.Api.V1.Maybe

Associated Types

type PTryFromExcess PData (PAsData (PMaybeData a)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PMaybeData a)), Reduce (PTryFromExcess PData (PAsData (PMaybeData a)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PScriptHash) Source # 
Instance details

Defined in Plutarch.Api.V1.Scripts

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PScriptHash), Reduce (PTryFromExcess PData (PAsData PScriptHash) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PPOSIXTime) Source # 
Instance details

Defined in Plutarch.Api.V1.Time

Associated Types

type PTryFromExcess PData (PAsData PPOSIXTime) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PPOSIXTime), Reduce (PTryFromExcess PData (PAsData PPOSIXTime) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PTxId) Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

Associated Types

type PTryFromExcess PData (PAsData PTxId) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PTxId), Reduce (PTryFromExcess PData (PAsData PTxId) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PTxOutRef) Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

Associated Types

type PTryFromExcess PData (PAsData PTxOutRef) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PTxOutRef), Reduce (PTryFromExcess PData (PAsData PTxOutRef) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PCurrencySymbol) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PCurrencySymbol), Reduce (PTryFromExcess PData (PAsData PCurrencySymbol) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PTokenName) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Associated Types

type PTryFromExcess PData (PAsData PTokenName) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PTokenName), Reduce (PTryFromExcess PData (PAsData PTokenName) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PValue 'Sorted 'NoGuarantees)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PValue 'Sorted 'NoGuarantees)), Reduce (PTryFromExcess PData (PAsData (PValue 'Sorted 'NoGuarantees)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PValue 'Sorted 'NonZero)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Associated Types

type PTryFromExcess PData (PAsData (PValue 'Sorted 'NonZero)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PValue 'Sorted 'NonZero)), Reduce (PTryFromExcess PData (PAsData (PValue 'Sorted 'NonZero)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PValue 'Sorted 'Positive)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PValue 'Sorted 'Positive)), Reduce (PTryFromExcess PData (PAsData (PValue 'Sorted 'Positive)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PValue 'Unsorted 'NoGuarantees)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PValue 'Unsorted 'NoGuarantees)), Reduce (PTryFromExcess PData (PAsData (PValue 'Unsorted 'NoGuarantees)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PValue 'Unsorted 'NonZero)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PValue 'Unsorted 'NonZero)), Reduce (PTryFromExcess PData (PAsData (PValue 'Unsorted 'NonZero)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PValue 'Unsorted 'Positive)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PValue 'Unsorted 'Positive)), Reduce (PTryFromExcess PData (PAsData (PValue 'Unsorted 'Positive)) s)) -> Term s r) -> Term s r Source #

(PTryFrom PData (PAsData a), PIsData a) => PTryFrom PData (PAsData (PBuiltinList (PAsData a))) Source #

Recover a `PBuiltinList (PAsData a)`

Instance details

Defined in Plutarch.Builtin

Associated Types

type PTryFromExcess PData (PAsData (PBuiltinList (PAsData a))) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PBuiltinList (PAsData a))), Reduce (PTryFromExcess PData (PAsData (PBuiltinList (PAsData a))) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PBuiltinList PData)) Source #

This verifies a list to be indeed a list but doesn't recover the inner data use this instance instead of the one for `PData (PAsData (PBuiltinList (PAsData a)))` as this is O(1) instead of O(n)

Instance details

Defined in Plutarch.Builtin

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PBuiltinList PData)), Reduce (PTryFromExcess PData (PAsData (PBuiltinList PData)) s)) -> Term s r) -> Term s r Source #

(PTryFrom PData a, a ~ PAsData a', PIsData a', PTryFrom PData b, b ~ PAsData b', PIsData b') => PTryFrom PData (PAsData (PBuiltinPair a b)) Source #

Recover a `PAsData (PBuiltinPair a b)`

Instance details

Defined in Plutarch.Builtin

Associated Types

type PTryFromExcess PData (PAsData (PBuiltinPair a b)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PBuiltinPair a b)), Reduce (PTryFromExcess PData (PAsData (PBuiltinPair a b)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PData) Source # 
Instance details

Defined in Plutarch.Builtin

Associated Types

type PTryFromExcess PData (PAsData PData) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PData), Reduce (PTryFromExcess PData (PAsData PData) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PByteString) Source # 
Instance details

Defined in Plutarch.Builtin

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PByteString), Reduce (PTryFromExcess PData (PAsData PByteString) s)) -> Term s r) -> Term s r Source #

(PTryFrom (PBuiltinList PData) (PDataRecord as), PTryFromExcess (PBuiltinList PData) (PDataRecord as) ~ HRecP ase) => PTryFrom PData (PAsData (PDataRecord as)) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

Associated Types

type PTryFromExcess PData (PAsData (PDataRecord as)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PDataRecord as)), Reduce (PTryFromExcess PData (PAsData (PDataRecord as)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PDataSum ys) => PTryFrom PData (PAsData (PDataSum ys)) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

Associated Types

type PTryFromExcess PData (PAsData (PDataSum ys)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PDataSum ys)), Reduce (PTryFromExcess PData (PAsData (PDataSum ys)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PInteger) Source # 
Instance details

Defined in Plutarch.Builtin

Associated Types

type PTryFromExcess PData (PAsData PInteger) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PInteger), Reduce (PTryFromExcess PData (PAsData PInteger) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PPositive) Source # 
Instance details

Defined in Plutarch.Positive

Associated Types

type PTryFromExcess PData (PAsData PPositive) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PPositive), Reduce (PTryFromExcess PData (PAsData PPositive) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PRational) Source #

NOTE: This instance produces a verified PPositive as the excess output.

Instance details

Defined in Plutarch.Rational

Associated Types

type PTryFromExcess PData (PAsData PRational) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PRational), Reduce (PTryFromExcess PData (PAsData PRational) s)) -> Term s r) -> Term s r Source #

SumValidation 0 ys => PTryFrom PData (PDataSum ys) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

Associated Types

type PTryFromExcess PData (PDataSum ys) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PDataSum ys), Reduce (PTryFromExcess PData (PDataSum ys) s)) -> Term s r) -> Term s r Source #

(Helper2 (PSubtype' PData pty) pty, PTryFrom (PBuiltinList PData) (PDataRecord as), PTryFromExcess (PBuiltinList PData) (PDataRecord as) ~ HRecP ase) => PTryFrom (PBuiltinList PData) (PDataRecord ((name := pty) ': as)) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

Associated Types

type PTryFromExcess (PBuiltinList PData) (PDataRecord ((name := pty) ': as)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s (PBuiltinList PData) -> ((Term s (PDataRecord ((name := pty) ': as)), Reduce (PTryFromExcess (PBuiltinList PData) (PDataRecord ((name := pty) ': as)) s)) -> Term s r) -> Term s r Source #

PTryFrom (PBuiltinList PData) (PDataRecord ('[] :: [PLabeledType])) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

Associated Types

type PTryFromExcess (PBuiltinList PData) (PDataRecord '[]) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s (PBuiltinList PData) -> ((Term s (PDataRecord '[]), Reduce (PTryFromExcess (PBuiltinList PData) (PDataRecord '[]) s)) -> Term s r) -> Term s r Source #

PIsData (PBuiltinPair PData PData) Source # 
Instance details

Defined in Plutarch.Builtin

PIsData (PBuiltinPair PInteger (PBuiltinList PData)) Source # 
Instance details

Defined in Plutarch.Builtin

type PContravariant' PData Source # 
Instance details

Defined in Plutarch.Builtin

type PCovariant' PData Source # 
Instance details

Defined in Plutarch.Builtin

type PCovariant' PData = ()
type PInner PData Source # 
Instance details

Defined in Plutarch.Builtin

type PVariant' PData Source # 
Instance details

Defined in Plutarch.Builtin

type PVariant' PData = ()
type PLifted PData Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData PAddress Source # 
Instance details

Defined in Plutarch.Api.V1.Address

type PTryFromExcess PData PCredential Source # 
Instance details

Defined in Plutarch.Api.V1.Address

type PTryFromExcess PData PStakingCredential Source # 
Instance details

Defined in Plutarch.Api.V1.Address

type PTryFromExcess PData PTxId Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

type PTryFromExcess PData PTxOutRef Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

type PTryFromExcess PData PData Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PMaybeData a) Source # 
Instance details

Defined in Plutarch.Api.V1.Maybe

type PTryFromExcess PData (PAsData PAddress) Source # 
Instance details

Defined in Plutarch.Api.V1.Address

type PTryFromExcess PData (PAsData PCredential) Source # 
Instance details

Defined in Plutarch.Api.V1.Address

type PTryFromExcess PData (PAsData PStakingCredential) Source # 
Instance details

Defined in Plutarch.Api.V1.Address

type PTryFromExcess PData (PAsData (PMap 'Sorted k v)) Source # 
Instance details

Defined in Plutarch.Api.V1.AssocMap

type PTryFromExcess PData (PAsData (PMap 'Unsorted k v)) Source # 
Instance details

Defined in Plutarch.Api.V1.AssocMap

type PTryFromExcess PData (PAsData PPubKeyHash) Source # 
Instance details

Defined in Plutarch.Api.V1.Crypto

type PTryFromExcess PData (PAsData (PMaybeData a)) Source # 
Instance details

Defined in Plutarch.Api.V1.Maybe

type PTryFromExcess PData (PAsData PScriptHash) Source # 
Instance details

Defined in Plutarch.Api.V1.Scripts

type PTryFromExcess PData (PAsData PPOSIXTime) Source # 
Instance details

Defined in Plutarch.Api.V1.Time

type PTryFromExcess PData (PAsData PTxId) Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

type PTryFromExcess PData (PAsData PTxOutRef) Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

type PTryFromExcess PData (PAsData PCurrencySymbol) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData PTokenName) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PValue 'Sorted 'NoGuarantees)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PValue 'Sorted 'NonZero)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PValue 'Sorted 'Positive)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PValue 'Unsorted 'NoGuarantees)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PValue 'Unsorted 'NonZero)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PValue 'Unsorted 'Positive)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PBuiltinList (PAsData a))) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData (PBuiltinList PData)) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData (PBuiltinPair a b)) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData PData) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData PByteString) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData (PDataRecord as)) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

type PTryFromExcess PData (PAsData (PDataSum ys)) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

type PTryFromExcess PData (PAsData PInteger) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData PPositive) Source # 
Instance details

Defined in Plutarch.Positive

type PTryFromExcess PData (PAsData PRational) Source # 
Instance details

Defined in Plutarch.Rational

type PTryFromExcess PData (PDataSum ys) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

type PTryFromExcess PData (PDataSum ys) = Const () :: S -> Type
type PTryFromExcess (PBuiltinList PData) (PDataRecord ((name := pty) ': as)) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

type PTryFromExcess (PBuiltinList PData) (PDataRecord ((name := pty) ': as))
type PTryFromExcess (PBuiltinList PData) (PDataRecord ('[] :: [PLabeledType])) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

pconstantData :: forall p h s. (ToData h, PLifted p ~ h, PConstanted h ~ p) => h -> Term s (PAsData p) Source #

Create a Plutarch-level PAsData constant, from a Haskell value. Example: > pconstantData @PInteger 42

data PBuiltinPair (a :: PType) (b :: PType) (s :: S) Source #

Plutus BuiltinPair

Instances

Instances details
(PTryFrom PData a, a ~ PAsData a', PIsData a', PTryFrom PData b, b ~ PAsData b', PIsData b') => PTryFrom PData (PAsData (PBuiltinPair a b)) Source #

Recover a `PAsData (PBuiltinPair a b)`

Instance details

Defined in Plutarch.Builtin

Associated Types

type PTryFromExcess PData (PAsData (PBuiltinPair a b)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PBuiltinPair a b)), Reduce (PTryFromExcess PData (PAsData (PBuiltinPair a b)) s)) -> Term s r) -> Term s r Source #

(PEq a, PEq b) => PEq (PBuiltinPair a b) Source # 
Instance details

Defined in Plutarch.Builtin

Methods

(#==) :: forall (s :: S). Term s (PBuiltinPair a b) -> Term s (PBuiltinPair a b) -> Term s PBool Source #

PIsData (PBuiltinPair (PAsData a) (PAsData b)) Source #

NB: `PAsData (PBuiltinPair (PAsData a) (PAsData b))` and `PAsData (PTuple a b)` have the same representation.

Instance details

Defined in Plutarch.Builtin

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PBuiltinPair (PAsData a) (PAsData b))) -> Term s (PBuiltinPair (PAsData a) (PAsData b)) Source #

pdataImpl :: forall (s :: S). Term s (PBuiltinPair (PAsData a) (PAsData b)) -> Term s PData Source #

PIsData (PBuiltinPair PData PData) Source # 
Instance details

Defined in Plutarch.Builtin

PIsData (PBuiltinPair PInteger (PBuiltinList PData)) Source # 
Instance details

Defined in Plutarch.Builtin

PlutusType (PBuiltinPair a b) Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pcon' :: forall (s :: S). PBuiltinPair a b s -> Term s (PInner (PBuiltinPair a b)) Source #

pmatch' :: forall (s :: S) (b0 :: PType). Term s (PInner (PBuiltinPair a b)) -> (PBuiltinPair a b s -> Term s b0) -> Term s b0 Source #

(PLift a, PLift b) => PUnsafeLiftDecl (PBuiltinPair a b) Source # 
Instance details

Defined in Plutarch.Builtin

Associated Types

type PLifted (PBuiltinPair a b) = (r :: Type) Source #

(PShow a, PShow b) => PShow (PBuiltinPair a b) Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pshow' :: forall (s :: S). Bool -> Term s (PBuiltinPair a b) -> Term s PString Source #

type PTryFromExcess PData (PAsData (PBuiltinPair a b)) Source # 
Instance details

Defined in Plutarch.Builtin

type PContravariant' (PBuiltinPair a b) Source # 
Instance details

Defined in Plutarch.Builtin

type PCovariant' (PBuiltinPair a b) Source # 
Instance details

Defined in Plutarch.Builtin

type PInner (PBuiltinPair a b) Source # 
Instance details

Defined in Plutarch.Builtin

type PVariant' (PBuiltinPair a b) Source # 
Instance details

Defined in Plutarch.Builtin

type PLifted (PBuiltinPair a b) Source # 
Instance details

Defined in Plutarch.Builtin

type PLifted (PBuiltinPair a b) = (PLifted a, PLifted b)

data PBuiltinList (a :: PType) (s :: S) Source #

Plutus BuiltinList

Constructors

PCons (Term s a) (Term s (PBuiltinList a)) 
PNil 

Instances

Instances details
PListLike PBuiltinList Source # 
Instance details

Defined in Plutarch.Builtin

Associated Types

type PElemConstraint PBuiltinList a Source #

Methods

pelimList :: forall (a :: PType) (s :: S) (r :: PType). PElemConstraint PBuiltinList a => (Term s a -> Term s (PBuiltinList a) -> Term s r) -> Term s r -> Term s (PBuiltinList a) -> Term s r Source #

pcons :: forall (a :: PType) (s :: S). PElemConstraint PBuiltinList a => Term s (a :--> (PBuiltinList a :--> PBuiltinList a)) Source #

pnil :: forall (a :: PType) (s :: S). PElemConstraint PBuiltinList a => Term s (PBuiltinList a) Source #

phead :: forall (a :: PType) (s :: S). PElemConstraint PBuiltinList a => Term s (PBuiltinList a :--> a) Source #

ptail :: forall (a :: PType) (s :: S). PElemConstraint PBuiltinList a => Term s (PBuiltinList a :--> PBuiltinList a) Source #

pnull :: forall (a :: PType) (s :: S). PElemConstraint PBuiltinList a => Term s (PBuiltinList a :--> PBool) Source #

(PTryFrom PData (PAsData a), PIsData a) => PTryFrom PData (PAsData (PBuiltinList (PAsData a))) Source #

Recover a `PBuiltinList (PAsData a)`

Instance details

Defined in Plutarch.Builtin

Associated Types

type PTryFromExcess PData (PAsData (PBuiltinList (PAsData a))) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PBuiltinList (PAsData a))), Reduce (PTryFromExcess PData (PAsData (PBuiltinList (PAsData a))) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PBuiltinList PData)) Source #

This verifies a list to be indeed a list but doesn't recover the inner data use this instance instead of the one for `PData (PAsData (PBuiltinList (PAsData a)))` as this is O(1) instead of O(n)

Instance details

Defined in Plutarch.Builtin

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PBuiltinList PData)), Reduce (PTryFromExcess PData (PAsData (PBuiltinList PData)) s)) -> Term s r) -> Term s r Source #

Fc (F a) a => PEq (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Builtin

Methods

(#==) :: forall (s :: S). Term s (PBuiltinList a) -> Term s (PBuiltinList a) -> Term s PBool Source #

PSubtype PData a => PIsData (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PBuiltinList a)) -> Term s (PBuiltinList a) Source #

pdataImpl :: forall (s :: S). Term s (PBuiltinList a) -> Term s PData Source #

PLift a => PlutusType (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pcon' :: forall (s :: S). PBuiltinList a s -> Term s (PInner (PBuiltinList a)) Source #

pmatch' :: forall (s :: S) (b :: PType). Term s (PInner (PBuiltinList a)) -> (PBuiltinList a s -> Term s b) -> Term s b Source #

PUnsafeLiftDecl a => PUnsafeLiftDecl (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Builtin

Associated Types

type PLifted (PBuiltinList a) = (r :: Type) Source #

(PShow a, PLift a) => PShow (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pshow' :: forall (s :: S). Bool -> Term s (PBuiltinList a) -> Term s PString Source #

(Helper2 (PSubtype' PData pty) pty, PTryFrom (PBuiltinList PData) (PDataRecord as), PTryFromExcess (PBuiltinList PData) (PDataRecord as) ~ HRecP ase) => PTryFrom (PBuiltinList PData) (PDataRecord ((name := pty) ': as)) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

Associated Types

type PTryFromExcess (PBuiltinList PData) (PDataRecord ((name := pty) ': as)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s (PBuiltinList PData) -> ((Term s (PDataRecord ((name := pty) ': as)), Reduce (PTryFromExcess (PBuiltinList PData) (PDataRecord ((name := pty) ': as)) s)) -> Term s r) -> Term s r Source #

PTryFrom (PBuiltinList PData) (PDataRecord ('[] :: [PLabeledType])) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

Associated Types

type PTryFromExcess (PBuiltinList PData) (PDataRecord '[]) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s (PBuiltinList PData) -> ((Term s (PDataRecord '[]), Reduce (PTryFromExcess (PBuiltinList PData) (PDataRecord '[]) s)) -> Term s r) -> Term s r Source #

PIsData (PBuiltinPair PInteger (PBuiltinList PData)) Source # 
Instance details

Defined in Plutarch.Builtin

type PElemConstraint PBuiltinList a Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData (PBuiltinList (PAsData a))) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData (PBuiltinList PData)) Source # 
Instance details

Defined in Plutarch.Builtin

type PContravariant' (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Builtin

type PCovariant' (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Builtin

type PInner (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Builtin

type PVariant' (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Builtin

type PLifted (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess (PBuiltinList PData) (PDataRecord ((name := pty) ': as)) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

type PTryFromExcess (PBuiltinList PData) (PDataRecord ((name := pty) ': as))
type PTryFromExcess (PBuiltinList PData) (PDataRecord ('[] :: [PLabeledType])) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

pdataLiteral :: Data -> Term s PData Source #

Deprecated: Use pconstant instead.

class PIsData a where Source #

Laws: - If PSubtype PData a, then pdataImpl a must be pupcast. - pdataImpl . pupcast . pfromDataImpl ≡ id - pfromDataImpl . punsafeDowncast . pdataImpl ≡ id

Minimal complete definition

Nothing

Methods

pfromDataImpl :: Term s (PAsData a) -> Term s a Source #

default pfromDataImpl :: PIsData (PInner a) => Term s (PAsData a) -> Term s a Source #

pdataImpl :: Term s a -> Term s PData Source #

default pdataImpl :: PIsData (PInner a) => Term s a -> Term s PData Source #

Instances

Instances details
PIsData PAddress Source # 
Instance details

Defined in Plutarch.Api.V1.Address

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PAddress) -> Term s PAddress Source #

pdataImpl :: forall (s :: S). Term s PAddress -> Term s PData Source #

PIsData PCredential Source # 
Instance details

Defined in Plutarch.Api.V1.Address

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PCredential) -> Term s PCredential Source #

pdataImpl :: forall (s :: S). Term s PCredential -> Term s PData Source #

PIsData PStakingCredential Source # 
Instance details

Defined in Plutarch.Api.V1.Address

PIsData PScriptContext Source # 
Instance details

Defined in Plutarch.Api.V1.Contexts

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PScriptContext) -> Term s PScriptContext Source #

pdataImpl :: forall (s :: S). Term s PScriptContext -> Term s PData Source #

PIsData PScriptPurpose Source # 
Instance details

Defined in Plutarch.Api.V1.Contexts

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PScriptPurpose) -> Term s PScriptPurpose Source #

pdataImpl :: forall (s :: S). Term s PScriptPurpose -> Term s PData Source #

PIsData PTxInfo Source # 
Instance details

Defined in Plutarch.Api.V1.Contexts

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PTxInfo) -> Term s PTxInfo Source #

pdataImpl :: forall (s :: S). Term s PTxInfo -> Term s PData Source #

PIsData PPubKeyHash Source # 
Instance details

Defined in Plutarch.Api.V1.Crypto

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PPubKeyHash) -> Term s PPubKeyHash Source #

pdataImpl :: forall (s :: S). Term s PPubKeyHash -> Term s PData Source #

PIsData PDCert Source # 
Instance details

Defined in Plutarch.Api.V1.DCert

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PDCert) -> Term s PDCert Source #

pdataImpl :: forall (s :: S). Term s PDCert -> Term s PData Source #

PIsData PDatum Source # 
Instance details

Defined in Plutarch.Api.V1.Scripts

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PDatum) -> Term s PDatum Source #

pdataImpl :: forall (s :: S). Term s PDatum -> Term s PData Source #

PIsData PDatumHash Source # 
Instance details

Defined in Plutarch.Api.V1.Scripts

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PDatumHash) -> Term s PDatumHash Source #

pdataImpl :: forall (s :: S). Term s PDatumHash -> Term s PData Source #

PIsData PRedeemer Source # 
Instance details

Defined in Plutarch.Api.V1.Scripts

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PRedeemer) -> Term s PRedeemer Source #

pdataImpl :: forall (s :: S). Term s PRedeemer -> Term s PData Source #

PIsData PRedeemerHash Source # 
Instance details

Defined in Plutarch.Api.V1.Scripts

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PRedeemerHash) -> Term s PRedeemerHash Source #

pdataImpl :: forall (s :: S). Term s PRedeemerHash -> Term s PData Source #

PIsData PScriptHash Source # 
Instance details

Defined in Plutarch.Api.V1.Scripts

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PScriptHash) -> Term s PScriptHash Source #

pdataImpl :: forall (s :: S). Term s PScriptHash -> Term s PData Source #

PIsData PPOSIXTime Source # 
Instance details

Defined in Plutarch.Api.V1.Time

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PPOSIXTime) -> Term s PPOSIXTime Source #

pdataImpl :: forall (s :: S). Term s PPOSIXTime -> Term s PData Source #

PIsData PTxId Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PTxId) -> Term s PTxId Source #

pdataImpl :: forall (s :: S). Term s PTxId -> Term s PData Source #

PIsData PTxInInfo Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PTxInInfo) -> Term s PTxInInfo Source #

pdataImpl :: forall (s :: S). Term s PTxInInfo -> Term s PData Source #

PIsData PTxOut Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PTxOut) -> Term s PTxOut Source #

pdataImpl :: forall (s :: S). Term s PTxOut -> Term s PData Source #

PIsData PTxOutRef Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PTxOutRef) -> Term s PTxOutRef Source #

pdataImpl :: forall (s :: S). Term s PTxOutRef -> Term s PData Source #

PIsData PCurrencySymbol Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PCurrencySymbol) -> Term s PCurrencySymbol Source #

pdataImpl :: forall (s :: S). Term s PCurrencySymbol -> Term s PData Source #

PIsData PTokenName Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PTokenName) -> Term s PTokenName Source #

pdataImpl :: forall (s :: S). Term s PTokenName -> Term s PData Source #

PIsData PScriptContext Source # 
Instance details

Defined in Plutarch.Api.V2.Contexts

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PScriptContext) -> Term s PScriptContext Source #

pdataImpl :: forall (s :: S). Term s PScriptContext -> Term s PData Source #

PIsData PTxInfo Source # 
Instance details

Defined in Plutarch.Api.V2.Contexts

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PTxInfo) -> Term s PTxInfo Source #

pdataImpl :: forall (s :: S). Term s PTxInfo -> Term s PData Source #

PIsData POutputDatum Source # 
Instance details

Defined in Plutarch.Api.V2.Tx

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData POutputDatum) -> Term s POutputDatum Source #

pdataImpl :: forall (s :: S). Term s POutputDatum -> Term s PData Source #

PIsData PTxInInfo Source # 
Instance details

Defined in Plutarch.Api.V2.Tx

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PTxInInfo) -> Term s PTxInInfo Source #

pdataImpl :: forall (s :: S). Term s PTxInInfo -> Term s PData Source #

PIsData PTxOut Source # 
Instance details

Defined in Plutarch.Api.V2.Tx

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PTxOut) -> Term s PTxOut Source #

pdataImpl :: forall (s :: S). Term s PTxOut -> Term s PData Source #

PIsData PBool Source #

Instance for PBool following the Plutus IsData repr given by makeIsDataIndexed ''Bool [('False,0),('True,1)], which is used in TxInfo via Closure.

Instance details

Defined in Plutarch.Builtin

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PBool) -> Term s PBool Source #

pdataImpl :: forall (s :: S). Term s PBool -> Term s PData Source #

PIsData PData Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PData) -> Term s PData Source #

pdataImpl :: forall (s :: S). Term s PData -> Term s PData Source #

PIsData PByteString Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PByteString) -> Term s PByteString Source #

pdataImpl :: forall (s :: S). Term s PByteString -> Term s PData Source #

PIsData PInteger Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PInteger) -> Term s PInteger Source #

pdataImpl :: forall (s :: S). Term s PInteger -> Term s PData Source #

PIsData PPositive Source # 
Instance details

Defined in Plutarch.Positive

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PPositive) -> Term s PPositive Source #

pdataImpl :: forall (s :: S). Term s PPositive -> Term s PData Source #

PIsData PRational Source #

This instance _does not_ correspond to Rationals data encoding.

Instance details

Defined in Plutarch.Rational

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PRational) -> Term s PRational Source #

pdataImpl :: forall (s :: S). Term s PRational -> Term s PData Source #

PIsData (PExtended a) Source # 
Instance details

Defined in Plutarch.Api.V1.Interval

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PExtended a)) -> Term s (PExtended a) Source #

pdataImpl :: forall (s :: S). Term s (PExtended a) -> Term s PData Source #

PIsData (PInterval a) Source # 
Instance details

Defined in Plutarch.Api.V1.Interval

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PInterval a)) -> Term s (PInterval a) Source #

pdataImpl :: forall (s :: S). Term s (PInterval a) -> Term s PData Source #

PIsData (PLowerBound a) Source # 
Instance details

Defined in Plutarch.Api.V1.Interval

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PLowerBound a)) -> Term s (PLowerBound a) Source #

pdataImpl :: forall (s :: S). Term s (PLowerBound a) -> Term s PData Source #

PIsData (PUpperBound a) Source # 
Instance details

Defined in Plutarch.Api.V1.Interval

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PUpperBound a)) -> Term s (PUpperBound a) Source #

pdataImpl :: forall (s :: S). Term s (PUpperBound a) -> Term s PData Source #

PIsData (PMaybeData a) Source # 
Instance details

Defined in Plutarch.Api.V1.Maybe

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PMaybeData a)) -> Term s (PMaybeData a) Source #

pdataImpl :: forall (s :: S). Term s (PMaybeData a) -> Term s PData Source #

PSubtype PData a => PIsData (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PBuiltinList a)) -> Term s (PBuiltinList a) Source #

pdataImpl :: forall (s :: S). Term s (PBuiltinList a) -> Term s PData Source #

PIsData (PDataRecord xs) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PDataRecord xs)) -> Term s (PDataRecord xs) Source #

pdataImpl :: forall (s :: S). Term s (PDataRecord xs) -> Term s PData Source #

PIsData (PDataSum defs) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PDataSum defs)) -> Term s (PDataSum defs) Source #

pdataImpl :: forall (s :: S). Term s (PDataSum defs) -> Term s PData Source #

PIsData (PUnit :: S -> Type) Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PUnit) -> Term s PUnit Source #

pdataImpl :: forall (s :: S). Term s PUnit -> Term s PData Source #

PIsData (PValue keys amounts) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PValue keys amounts)) -> Term s (PValue keys amounts) Source #

pdataImpl :: forall (s :: S). Term s (PValue keys amounts) -> Term s PData Source #

PIsData (PBuiltinPair (PAsData a) (PAsData b)) Source #

NB: `PAsData (PBuiltinPair (PAsData a) (PAsData b))` and `PAsData (PTuple a b)` have the same representation.

Instance details

Defined in Plutarch.Builtin

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PBuiltinPair (PAsData a) (PAsData b))) -> Term s (PBuiltinPair (PAsData a) (PAsData b)) Source #

pdataImpl :: forall (s :: S). Term s (PBuiltinPair (PAsData a) (PAsData b)) -> Term s PData Source #

PIsData (PBuiltinPair PData PData) Source # 
Instance details

Defined in Plutarch.Builtin

PIsData (PBuiltinPair PInteger (PBuiltinList PData)) Source # 
Instance details

Defined in Plutarch.Builtin

PIsData (PMap keysort k v) Source # 
Instance details

Defined in Plutarch.Api.V1.AssocMap

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PMap keysort k v)) -> Term s (PMap keysort k v) Source #

pdataImpl :: forall (s :: S). Term s (PMap keysort k v) -> Term s PData Source #

pdata :: PIsData a => Term s a -> Term s (PAsData a) Source #

pfromData :: PIsData a => Term s (PAsData a) -> Term s a Source #

data PAsData (a :: PType) (s :: S) Source #

Instances

Instances details
PFromDataable a (PAsData a) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal.FromData

Methods

pmaybeFromAsData :: forall (s :: S). Term s (PAsData a) -> Term s (PAsData a) Source #

PTryFrom PData (PAsData PAddress) Source # 
Instance details

Defined in Plutarch.Api.V1.Address

Associated Types

type PTryFromExcess PData (PAsData PAddress) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PAddress), Reduce (PTryFromExcess PData (PAsData PAddress) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PCredential) Source # 
Instance details

Defined in Plutarch.Api.V1.Address

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PCredential), Reduce (PTryFromExcess PData (PAsData PCredential) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PStakingCredential) Source # 
Instance details

Defined in Plutarch.Api.V1.Address

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PStakingCredential), Reduce (PTryFromExcess PData (PAsData PStakingCredential) s)) -> Term s r) -> Term s r Source #

(POrd k, PIsData k, PIsData v, PTryFrom PData (PAsData k), PTryFrom PData (PAsData v)) => PTryFrom PData (PAsData (PMap 'Sorted k v)) Source # 
Instance details

Defined in Plutarch.Api.V1.AssocMap

Associated Types

type PTryFromExcess PData (PAsData (PMap 'Sorted k v)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PMap 'Sorted k v)), Reduce (PTryFromExcess PData (PAsData (PMap 'Sorted k v)) s)) -> Term s r) -> Term s r Source #

(PTryFrom PData (PAsData k), PTryFrom PData (PAsData v)) => PTryFrom PData (PAsData (PMap 'Unsorted k v)) Source # 
Instance details

Defined in Plutarch.Api.V1.AssocMap

Associated Types

type PTryFromExcess PData (PAsData (PMap 'Unsorted k v)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PMap 'Unsorted k v)), Reduce (PTryFromExcess PData (PAsData (PMap 'Unsorted k v)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PPubKeyHash) Source # 
Instance details

Defined in Plutarch.Api.V1.Crypto

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PPubKeyHash), Reduce (PTryFromExcess PData (PAsData PPubKeyHash) s)) -> Term s r) -> Term s r Source #

PTryFrom PData a => PTryFrom PData (PAsData (PMaybeData a)) Source # 
Instance details

Defined in Plutarch.Api.V1.Maybe

Associated Types

type PTryFromExcess PData (PAsData (PMaybeData a)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PMaybeData a)), Reduce (PTryFromExcess PData (PAsData (PMaybeData a)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PScriptHash) Source # 
Instance details

Defined in Plutarch.Api.V1.Scripts

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PScriptHash), Reduce (PTryFromExcess PData (PAsData PScriptHash) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PPOSIXTime) Source # 
Instance details

Defined in Plutarch.Api.V1.Time

Associated Types

type PTryFromExcess PData (PAsData PPOSIXTime) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PPOSIXTime), Reduce (PTryFromExcess PData (PAsData PPOSIXTime) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PTxId) Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

Associated Types

type PTryFromExcess PData (PAsData PTxId) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PTxId), Reduce (PTryFromExcess PData (PAsData PTxId) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PTxOutRef) Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

Associated Types

type PTryFromExcess PData (PAsData PTxOutRef) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PTxOutRef), Reduce (PTryFromExcess PData (PAsData PTxOutRef) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PCurrencySymbol) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PCurrencySymbol), Reduce (PTryFromExcess PData (PAsData PCurrencySymbol) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PTokenName) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Associated Types

type PTryFromExcess PData (PAsData PTokenName) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PTokenName), Reduce (PTryFromExcess PData (PAsData PTokenName) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PValue 'Sorted 'NoGuarantees)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PValue 'Sorted 'NoGuarantees)), Reduce (PTryFromExcess PData (PAsData (PValue 'Sorted 'NoGuarantees)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PValue 'Sorted 'NonZero)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Associated Types

type PTryFromExcess PData (PAsData (PValue 'Sorted 'NonZero)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PValue 'Sorted 'NonZero)), Reduce (PTryFromExcess PData (PAsData (PValue 'Sorted 'NonZero)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PValue 'Sorted 'Positive)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PValue 'Sorted 'Positive)), Reduce (PTryFromExcess PData (PAsData (PValue 'Sorted 'Positive)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PValue 'Unsorted 'NoGuarantees)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PValue 'Unsorted 'NoGuarantees)), Reduce (PTryFromExcess PData (PAsData (PValue 'Unsorted 'NoGuarantees)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PValue 'Unsorted 'NonZero)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PValue 'Unsorted 'NonZero)), Reduce (PTryFromExcess PData (PAsData (PValue 'Unsorted 'NonZero)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PValue 'Unsorted 'Positive)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PValue 'Unsorted 'Positive)), Reduce (PTryFromExcess PData (PAsData (PValue 'Unsorted 'Positive)) s)) -> Term s r) -> Term s r Source #

(PTryFrom PData (PAsData a), PIsData a) => PTryFrom PData (PAsData (PBuiltinList (PAsData a))) Source #

Recover a `PBuiltinList (PAsData a)`

Instance details

Defined in Plutarch.Builtin

Associated Types

type PTryFromExcess PData (PAsData (PBuiltinList (PAsData a))) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PBuiltinList (PAsData a))), Reduce (PTryFromExcess PData (PAsData (PBuiltinList (PAsData a))) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData (PBuiltinList PData)) Source #

This verifies a list to be indeed a list but doesn't recover the inner data use this instance instead of the one for `PData (PAsData (PBuiltinList (PAsData a)))` as this is O(1) instead of O(n)

Instance details

Defined in Plutarch.Builtin

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PBuiltinList PData)), Reduce (PTryFromExcess PData (PAsData (PBuiltinList PData)) s)) -> Term s r) -> Term s r Source #

(PTryFrom PData a, a ~ PAsData a', PIsData a', PTryFrom PData b, b ~ PAsData b', PIsData b') => PTryFrom PData (PAsData (PBuiltinPair a b)) Source #

Recover a `PAsData (PBuiltinPair a b)`

Instance details

Defined in Plutarch.Builtin

Associated Types

type PTryFromExcess PData (PAsData (PBuiltinPair a b)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PBuiltinPair a b)), Reduce (PTryFromExcess PData (PAsData (PBuiltinPair a b)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PData) Source # 
Instance details

Defined in Plutarch.Builtin

Associated Types

type PTryFromExcess PData (PAsData PData) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PData), Reduce (PTryFromExcess PData (PAsData PData) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PByteString) Source # 
Instance details

Defined in Plutarch.Builtin

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PByteString), Reduce (PTryFromExcess PData (PAsData PByteString) s)) -> Term s r) -> Term s r Source #

(PTryFrom (PBuiltinList PData) (PDataRecord as), PTryFromExcess (PBuiltinList PData) (PDataRecord as) ~ HRecP ase) => PTryFrom PData (PAsData (PDataRecord as)) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

Associated Types

type PTryFromExcess PData (PAsData (PDataRecord as)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PDataRecord as)), Reduce (PTryFromExcess PData (PAsData (PDataRecord as)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PDataSum ys) => PTryFrom PData (PAsData (PDataSum ys)) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

Associated Types

type PTryFromExcess PData (PAsData (PDataSum ys)) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData (PDataSum ys)), Reduce (PTryFromExcess PData (PAsData (PDataSum ys)) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PInteger) Source # 
Instance details

Defined in Plutarch.Builtin

Associated Types

type PTryFromExcess PData (PAsData PInteger) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PInteger), Reduce (PTryFromExcess PData (PAsData PInteger) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PPositive) Source # 
Instance details

Defined in Plutarch.Positive

Associated Types

type PTryFromExcess PData (PAsData PPositive) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PPositive), Reduce (PTryFromExcess PData (PAsData PPositive) s)) -> Term s r) -> Term s r Source #

PTryFrom PData (PAsData PRational) Source #

NOTE: This instance produces a verified PPositive as the excess output.

Instance details

Defined in Plutarch.Rational

Associated Types

type PTryFromExcess PData (PAsData PRational) :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s (PAsData PRational), Reduce (PTryFromExcess PData (PAsData PRational) s)) -> Term s r) -> Term s r Source #

PEq (PAsData a) Source # 
Instance details

Defined in Plutarch.Builtin

Methods

(#==) :: forall (s :: S). Term s (PAsData a) -> Term s (PAsData a) -> Term s PBool Source #

(PIsData a, PDataFields a) => PDataFields (PAsData a) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal.Field

Associated Types

type PFields (PAsData a) :: [PLabeledType] Source #

Methods

ptoFields :: forall (s :: S). Term s (PAsData a) -> Term s (PDataRecord (PFields (PAsData a))) Source #

PIsData a => PlutusType (PAsData a) Source # 
Instance details

Defined in Plutarch.Builtin

Associated Types

type PInner (PAsData a) :: PType Source #

type PCovariant' (PAsData a) Source #

type PContravariant' (PAsData a) Source #

type PVariant' (PAsData a) Source #

Methods

pcon' :: forall (s :: S). PAsData a s -> Term s (PInner (PAsData a)) Source #

pmatch' :: forall (s :: S) (b :: PType). Term s (PInner (PAsData a)) -> (PAsData a s -> Term s b) -> Term s b Source #

PUnsafeLiftDecl (PAsData a) Source # 
Instance details

Defined in Plutarch.Builtin

Associated Types

type PLifted (PAsData a) = (r :: Type) Source #

(PIsData a, PShow a) => PShow (PAsData a) Source # 
Instance details

Defined in Plutarch.Builtin

Methods

pshow' :: forall (s :: S). Bool -> Term s (PAsData a) -> Term s PString Source #

PIsData (PBuiltinPair (PAsData a) (PAsData b)) Source #

NB: `PAsData (PBuiltinPair (PAsData a) (PAsData b))` and `PAsData (PTuple a b)` have the same representation.

Instance details

Defined in Plutarch.Builtin

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData (PBuiltinPair (PAsData a) (PAsData b))) -> Term s (PBuiltinPair (PAsData a) (PAsData b)) Source #

pdataImpl :: forall (s :: S). Term s (PBuiltinPair (PAsData a) (PAsData b)) -> Term s PData Source #

type PTryFromExcess PData (PAsData PAddress) Source # 
Instance details

Defined in Plutarch.Api.V1.Address

type PTryFromExcess PData (PAsData PCredential) Source # 
Instance details

Defined in Plutarch.Api.V1.Address

type PTryFromExcess PData (PAsData PStakingCredential) Source # 
Instance details

Defined in Plutarch.Api.V1.Address

type PTryFromExcess PData (PAsData (PMap 'Sorted k v)) Source # 
Instance details

Defined in Plutarch.Api.V1.AssocMap

type PTryFromExcess PData (PAsData (PMap 'Unsorted k v)) Source # 
Instance details

Defined in Plutarch.Api.V1.AssocMap

type PTryFromExcess PData (PAsData PPubKeyHash) Source # 
Instance details

Defined in Plutarch.Api.V1.Crypto

type PTryFromExcess PData (PAsData (PMaybeData a)) Source # 
Instance details

Defined in Plutarch.Api.V1.Maybe

type PTryFromExcess PData (PAsData PScriptHash) Source # 
Instance details

Defined in Plutarch.Api.V1.Scripts

type PTryFromExcess PData (PAsData PPOSIXTime) Source # 
Instance details

Defined in Plutarch.Api.V1.Time

type PTryFromExcess PData (PAsData PTxId) Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

type PTryFromExcess PData (PAsData PTxOutRef) Source # 
Instance details

Defined in Plutarch.Api.V1.Tx

type PTryFromExcess PData (PAsData PCurrencySymbol) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData PTokenName) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PValue 'Sorted 'NoGuarantees)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PValue 'Sorted 'NonZero)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PValue 'Sorted 'Positive)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PValue 'Unsorted 'NoGuarantees)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PValue 'Unsorted 'NonZero)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PValue 'Unsorted 'Positive)) Source # 
Instance details

Defined in Plutarch.Api.V1.Value

type PTryFromExcess PData (PAsData (PBuiltinList (PAsData a))) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData (PBuiltinList PData)) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData (PBuiltinPair a b)) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData PData) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData PByteString) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData (PDataRecord as)) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

type PTryFromExcess PData (PAsData (PDataSum ys)) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal

type PTryFromExcess PData (PAsData PInteger) Source # 
Instance details

Defined in Plutarch.Builtin

type PTryFromExcess PData (PAsData PPositive) Source # 
Instance details

Defined in Plutarch.Positive

type PTryFromExcess PData (PAsData PRational) Source # 
Instance details

Defined in Plutarch.Rational

type PFields (PAsData a) Source # 
Instance details

Defined in Plutarch.DataRepr.Internal.Field

type PFields (PAsData a) = PFields a
type PContravariant' (PAsData a) Source # 
Instance details

Defined in Plutarch.Builtin

type PCovariant' (PAsData a) Source # 
Instance details

Defined in Plutarch.Builtin

type PInner (PAsData a) Source # 
Instance details

Defined in Plutarch.Builtin

type PInner (PAsData a)
type PVariant' (PAsData a) Source # 
Instance details

Defined in Plutarch.Builtin

type PLifted (PAsData a) Source # 
Instance details

Defined in Plutarch.Builtin

type PLifted (PAsData a)

pforgetData :: forall s a. Term s (PAsData a) -> Term s PData Source #

prememberData :: forall (p :: PType -> PType) s. PVariant p => Proxy p -> Term s (p PData) -> Term s (p (PAsData PData)) Source #

Inverse of pforgetData'.

prememberData' :: forall a (p :: PType -> PType) s. (PSubtype PData a, PVariant p) => Proxy p -> Term s (p a) -> Term s (p (PAsData a)) Source #

Like prememberData but generalised.

pserialiseData :: Term s (PData :--> PByteString) Source #

Serialise any builtin data to its cbor represented by a builtin bytestring

ppairDataBuiltin :: Term s (PAsData a :--> (PAsData b :--> PBuiltinPair (PAsData a) (PAsData b))) Source #

Construct a builtin pair of PData elements.

Uses PAsData to preserve more information about the underlying PData.

pchooseData :: Term s (PData :--> (a :--> (a :--> (a :--> (a :--> (a :--> a)))))) Source #

Orphan instances

PConstantDecl Data Source # 
Instance details

Associated Types

type PConstantRepr Data Source #

type PConstanted Data :: PType Source #

PConstant a => PConstantDecl [a] Source # 
Instance details

Associated Types

type PConstantRepr [a] Source #

type PConstanted [a] :: PType Source #

(PConstant a, PConstant b) => PConstantDecl (a, b) Source # 
Instance details

Associated Types

type PConstantRepr (a, b) Source #

type PConstanted (a, b) :: PType Source #

Methods

pconstantToRepr :: (a, b) -> PConstantRepr (a, b) Source #

pconstantFromRepr :: PConstantRepr (a, b) -> Maybe (a, b) Source #