plutarch
Safe HaskellNone
LanguageGHC2021

Plutarch.Builtin.Data

Synopsis

Documentation

newtype PData (s :: S) Source #

Constructors

PData (Term s PData) 

Instances

Instances details
PEq PData Source # 
Instance details

Defined in Plutarch.Internal.Eq

Methods

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

PIsData PData Source # 
Instance details

Defined in Plutarch.Internal.IsData

Methods

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

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

PLiftable PData Source #

Since: 1.10.0

Instance details

Defined in Plutarch.Internal.Lift

Associated Types

type AsHaskell PData 
Instance details

Defined in Plutarch.Internal.Lift

type AsHaskell PData = Data
type PlutusRepr PData 
Instance details

Defined in Plutarch.Internal.Lift

type PlutusRepr PData = Data
PValidateData PData Source #

Checks (and does) nothing.

Since: 1.12.0

Instance details

Defined in Plutarch.Internal.Parse

Methods

pwithValidated :: forall (s :: S). Term s PData -> forall (r :: S -> Type). Term s r -> Term s r Source #

PlutusType PData Source # 
Instance details

Defined in Plutarch.Internal.PlutusType

Associated Types

type PInner PData 
Instance details

Defined in Plutarch.Internal.PlutusType

Methods

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

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

PShow PData Source # 
Instance details

Defined in Plutarch.Internal.Show

Methods

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

PTryFrom PData PData Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

Associated Types

type PTryFromExcess PData PData 
Instance details

Defined in Plutarch.Internal.TryFrom

Methods

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

PTryFrom PData (PAsData PBool) Source #

Since: 1.7.0

Instance details

Defined in Plutarch.Internal.TryFrom

Associated Types

type PTryFromExcess PData (PAsData PBool) 
Instance details

Defined in Plutarch.Internal.TryFrom

Methods

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

PTryFrom PData (PAsData PByteString) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). Term s PData -> ((Term s (PAsData PByteString), Reduce (PTryFromExcess PData (PAsData PByteString) 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.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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.Internal.TryFrom

Associated Types

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

Defined in Plutarch.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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.Internal.TryFrom

Associated Types

type PTryFromExcess PData (PAsData PData) 
Instance details

Defined in Plutarch.Internal.TryFrom

Methods

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

PTryFrom PData (PAsData PInteger) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). Term s PData -> ((Term s (PAsData PInteger), Reduce (PTryFromExcess PData (PAsData PInteger) 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)) 
Instance details

Defined in Plutarch.DataRepr.Internal

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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)) 
Instance details

Defined in Plutarch.DataRepr.Internal

Methods

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

(PTryFrom PData a, PTryFrom PData b) => PTryFrom PData (PAsData (PEitherData a b)) Source #

Since: 1.10.0

Instance details

Defined in Plutarch.Either

Associated Types

type PTryFromExcess PData (PAsData (PEitherData a b)) 
Instance details

Defined in Plutarch.Either

Methods

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

PTryFrom PData (PAsData PNatural) Source #

Since: 3.4.0

Instance details

Defined in Plutarch.Internal.TryFrom

Methods

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

PTryFrom PData (PAsData PPositive) Source #

Since: 1.10.0

Instance details

Defined in Plutarch.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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) 
Instance details

Defined in Plutarch.Rational

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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) 
Instance details

Defined in Plutarch.DataRepr.Internal

type PTryFromExcess PData (PDataSum ys) = Const () :: S -> Type

Methods

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

(PTryFrom PData a, PTryFrom PData b) => PTryFrom PData (PEitherData a b) Source #

Since: 1.10.0

Instance details

Defined in Plutarch.Either

Associated Types

type PTryFromExcess PData (PEitherData a b) 
Instance details

Defined in Plutarch.Either

Methods

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

PValidateData (PBuiltinList PData) Source #

Checks that we have a List.

Since: 1.12.0

Instance details

Defined in Plutarch.Internal.Parse

Methods

pwithValidated :: forall (s :: S). Term s PData -> forall (r :: S -> Type). 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)) 
Instance details

Defined in Plutarch.DataRepr.Internal

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

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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 ('[] :: [PLabeledType])) 
Instance details

Defined in Plutarch.DataRepr.Internal

Methods

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

PIsData (PBuiltinPair PData PData) Source # 
Instance details

Defined in Plutarch.Internal.IsData

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

Defined in Plutarch.Internal.IsData

PValidateData (PBuiltinPair PData PData) Source #

Checks that we have a Constr with a second field of at least length 2. The Constr tag, or the elements, are not checked at all.

Since: 1.12.0

Instance details

Defined in Plutarch.Internal.Parse

Methods

pwithValidated :: forall (s :: S). Term s PData -> forall (r :: S -> Type). Term s r -> Term s r Source #

type AsHaskell PData Source # 
Instance details

Defined in Plutarch.Internal.Lift

type AsHaskell PData = Data
type PlutusRepr PData Source # 
Instance details

Defined in Plutarch.Internal.Lift

type PlutusRepr PData = Data
type PInner PData Source # 
Instance details

Defined in Plutarch.Internal.PlutusType

type PTryFromExcess PData PData Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

type PTryFromExcess PData (PAsData PBool) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

type PTryFromExcess PData (PAsData PByteString) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

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

Defined in Plutarch.Internal.TryFrom

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

Defined in Plutarch.Internal.TryFrom

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

Defined in Plutarch.Internal.TryFrom

type PTryFromExcess PData (PAsData PData) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

type PTryFromExcess PData (PAsData PInteger) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

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 (PEitherData a b)) Source # 
Instance details

Defined in Plutarch.Either

type PTryFromExcess PData (PAsData PNatural) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

type PTryFromExcess PData (PAsData PPositive) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

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 PData (PEitherData a b) Source # 
Instance details

Defined in Plutarch.Either

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

newtype PAsData (a :: S -> Type) (s :: S) Source #

Constructors

PAsData (Term s a) 

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 PBool) Source #

Since: 1.7.0

Instance details

Defined in Plutarch.Internal.TryFrom

Associated Types

type PTryFromExcess PData (PAsData PBool) 
Instance details

Defined in Plutarch.Internal.TryFrom

Methods

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

PTryFrom PData (PAsData PByteString) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). Term s PData -> ((Term s (PAsData PByteString), Reduce (PTryFromExcess PData (PAsData PByteString) 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.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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.Internal.TryFrom

Associated Types

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

Defined in Plutarch.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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.Internal.TryFrom

Associated Types

type PTryFromExcess PData (PAsData PData) 
Instance details

Defined in Plutarch.Internal.TryFrom

Methods

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

PTryFrom PData (PAsData PInteger) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). Term s PData -> ((Term s (PAsData PInteger), Reduce (PTryFromExcess PData (PAsData PInteger) 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)) 
Instance details

Defined in Plutarch.DataRepr.Internal

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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)) 
Instance details

Defined in Plutarch.DataRepr.Internal

Methods

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

(PTryFrom PData a, PTryFrom PData b) => PTryFrom PData (PAsData (PEitherData a b)) Source #

Since: 1.10.0

Instance details

Defined in Plutarch.Either

Associated Types

type PTryFromExcess PData (PAsData (PEitherData a b)) 
Instance details

Defined in Plutarch.Either

Methods

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

PTryFrom PData (PAsData PNatural) Source #

Since: 3.4.0

Instance details

Defined in Plutarch.Internal.TryFrom

Methods

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

PTryFrom PData (PAsData PPositive) Source #

Since: 1.10.0

Instance details

Defined in Plutarch.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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) 
Instance details

Defined in Plutarch.Rational

Methods

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

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

Defined in Plutarch.DataRepr.Internal.Field

Associated Types

type PFields (PAsData a) 
Instance details

Defined in Plutarch.DataRepr.Internal.Field

type PFields (PAsData a) = PFields a

Methods

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

PEq (PAsData a) Source # 
Instance details

Defined in Plutarch.Internal.Eq

Methods

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

(ToData (AsHaskell a), FromData (AsHaskell a), PIsData a) => PLiftable (PAsData a) Source #

Since: 1.10.0

Instance details

Defined in Plutarch.Internal.Lift

Associated Types

type AsHaskell (PAsData a) 
Instance details

Defined in Plutarch.Internal.Lift

type PlutusRepr (PAsData a) 
Instance details

Defined in Plutarch.Internal.Lift

type PlutusRepr (PAsData a) = Data
PValidateData a => PValidateData (PAsData a) Source #

Since: 1.12.0

Instance details

Defined in Plutarch.Internal.Parse

Methods

pwithValidated :: forall (s :: S). Term s PData -> forall (r :: S -> Type). Term s r -> Term s r Source #

(PValidateData a, PValidateData b) => PValidateData (PBuiltinList (PBuiltinPair (PAsData a) (PAsData b))) Source #

Checks that we have a Map. Furthermore, checks that every key-value pair validates as per a and b. Takes precedence over the overlapping PValidateData (PBuiltinList a) instance.

Since: 1.13.0

Instance details

Defined in Plutarch.Internal.Parse

Methods

pwithValidated :: forall (s :: S). Term s PData -> forall (r :: S -> Type). Term s r -> Term s r Source #

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

Defined in Plutarch.Internal.PlutusType

Associated Types

type PInner (PAsData a) 
Instance details

Defined in Plutarch.Internal.PlutusType

type PInner (PAsData a) = PData

Methods

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

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

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

Defined in Plutarch.Internal.Show

Methods

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

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

Defined in Plutarch.Internal.IsData

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 #

(PValidateData a, PValidateData b) => PValidateData (PBuiltinPair (PAsData a) (PAsData b)) Source #

Checks that we have a Constr with a second field of at least length 2. Furthermore, checks that the first element validates as per a, while the second element validates as per b. The Constr tag is not checked at all.

Since: 1.12.0

Instance details

Defined in Plutarch.Internal.Parse

Methods

pwithValidated :: forall (s :: S). Term s PData -> forall (r :: S -> Type). Term s r -> Term s r Source #

type PTryFromExcess PData (PAsData PBool) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

type PTryFromExcess PData (PAsData PByteString) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

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

Defined in Plutarch.Internal.TryFrom

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

Defined in Plutarch.Internal.TryFrom

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

Defined in Plutarch.Internal.TryFrom

type PTryFromExcess PData (PAsData PData) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

type PTryFromExcess PData (PAsData PInteger) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

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 (PEitherData a b)) Source # 
Instance details

Defined in Plutarch.Either

type PTryFromExcess PData (PAsData PNatural) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

type PTryFromExcess PData (PAsData PPositive) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

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 AsHaskell (PAsData a) Source # 
Instance details

Defined in Plutarch.Internal.Lift

type PlutusRepr (PAsData a) Source # 
Instance details

Defined in Plutarch.Internal.Lift

type PlutusRepr (PAsData a) = Data
type PInner (PAsData a) Source # 
Instance details

Defined in Plutarch.Internal.PlutusType

type PInner (PAsData a) = PData

pchooseData :: forall (s :: S) (a :: S -> Type). Term s (PData :--> (a :--> (a :--> (a :--> (a :--> (a :--> a)))))) Source #

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

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

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

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

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

data PBuiltinPair (a :: S -> Type) (b :: S -> Type) (s :: S) Source #

A builtin Plutus pair.

Since: 1.12.0

Constructors

PBuiltinPair (Term s a) (Term s b) 

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.Internal.TryFrom

Associated Types

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

Defined in Plutarch.Internal.TryFrom

Methods

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

(PValidateData a, PValidateData b) => PValidateData (PBuiltinList (PBuiltinPair (PAsData a) (PAsData b))) Source #

Checks that we have a Map. Furthermore, checks that every key-value pair validates as per a and b. Takes precedence over the overlapping PValidateData (PBuiltinList a) instance.

Since: 1.13.0

Instance details

Defined in Plutarch.Internal.Parse

Methods

pwithValidated :: forall (s :: S). Term s PData -> forall (r :: S -> Type). Term s r -> Term s r Source #

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

Defined in Plutarch.Internal.Eq

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 # 
Instance details

Defined in Plutarch.Internal.IsData

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.Internal.IsData

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

Defined in Plutarch.Internal.IsData

(PLiftable a, Includes DefaultUni (PlutusRepr a), KnownBuiltinType (Term DeBruijn DefaultUni DefaultFun ()) (PlutusRepr a), PLiftable b, Includes DefaultUni (PlutusRepr b), KnownBuiltinType (Term DeBruijn DefaultUni DefaultFun ()) (PlutusRepr b)) => PLiftable (PBuiltinPair a b) Source #

Since: 1.13.0

Instance details

Defined in Plutarch.Internal.Lift

Associated Types

type AsHaskell (PBuiltinPair a b) 
Instance details

Defined in Plutarch.Internal.Lift

type PlutusRepr (PBuiltinPair a b) 
Instance details

Defined in Plutarch.Internal.Lift

(PValidateData a, PValidateData b) => PValidateData (PBuiltinPair (PAsData a) (PAsData b)) Source #

Checks that we have a Constr with a second field of at least length 2. Furthermore, checks that the first element validates as per a, while the second element validates as per b. The Constr tag is not checked at all.

Since: 1.12.0

Instance details

Defined in Plutarch.Internal.Parse

Methods

pwithValidated :: forall (s :: S). Term s PData -> forall (r :: S -> Type). Term s r -> Term s r Source #

PValidateData (PBuiltinPair PData PData) Source #

Checks that we have a Constr with a second field of at least length 2. The Constr tag, or the elements, are not checked at all.

Since: 1.12.0

Instance details

Defined in Plutarch.Internal.Parse

Methods

pwithValidated :: forall (s :: S). Term s PData -> forall (r :: S -> Type). Term s r -> Term s r Source #

PlutusType (PBuiltinPair a b) Source #

Important note

Due to some weirdnesses regarding builtins, PBuiltinPairs cannot be constructed from anything that's not already Data-encoded, but as builtin pairs are, well, built-in, we can lift, and pmatch, them just fine. Thus, you should not use pcon for PBuiltinPair.

Since: 1.12.0

Instance details

Defined in Plutarch.Internal.PlutusType

Associated Types

type PInner (PBuiltinPair a b) 
Instance details

Defined in Plutarch.Internal.PlutusType

Methods

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

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

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

Defined in Plutarch.Internal.Show

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.Internal.TryFrom

type AsHaskell (PBuiltinPair a b) Source # 
Instance details

Defined in Plutarch.Internal.Lift

type PlutusRepr (PBuiltinPair a b) Source # 
Instance details

Defined in Plutarch.Internal.Lift

type PInner (PBuiltinPair a b) Source # 
Instance details

Defined in Plutarch.Internal.PlutusType

pfstBuiltin :: forall (s :: S) (a :: S -> Type) (b :: S -> Type). Term s (PBuiltinPair a b :--> a) Source #

Deprecated: Use pmatch instead

psndBuiltin :: forall (s :: S) (a :: S -> Type) (b :: S -> Type). Term s (PBuiltinPair a b :--> b) Source #

Deprecated: Use pmatch instead

ppairDataBuiltin :: forall (s :: S) (a :: S -> Type) (b :: S -> Type). 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.

data PBuiltinList (a :: S -> Type) (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.Internal.ListLike

Associated Types

type PElemConstraint PBuiltinList a 
Instance details

Defined in Plutarch.Internal.ListLike

type PElemConstraint PBuiltinList a = Contains DefaultUni (PlutusRepr a)

Methods

pelimList :: forall (a :: S -> Type) (s :: S) (r :: S -> Type). 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 :: S -> Type) (s :: S). PElemConstraint PBuiltinList a => Term s (a :--> (PBuiltinList a :--> PBuiltinList a)) Source #

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

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

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

pnull :: forall (a :: S -> Type) (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.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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.Internal.TryFrom

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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.Internal.Eq

Methods

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

(PInnermostIsData ('Just "PBuiltinList only implements PIsData when inner most type of its elements are PData") a, PSubtype PData a) => PIsData (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Internal.IsData

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 #

(PLiftable a, Includes DefaultUni (PlutusRepr a), KnownBuiltinType (Term DeBruijn DefaultUni DefaultFun ()) (PlutusRepr a)) => PLiftable (PBuiltinList a) Source #

Since: 1.13.0

Instance details

Defined in Plutarch.Internal.Lift

Associated Types

type AsHaskell (PBuiltinList a) 
Instance details

Defined in Plutarch.Internal.Lift

type PlutusRepr (PBuiltinList a) 
Instance details

Defined in Plutarch.Internal.Lift

(PValidateData a, PValidateData b) => PValidateData (PBuiltinList (PBuiltinPair (PAsData a) (PAsData b))) Source #

Checks that we have a Map. Furthermore, checks that every key-value pair validates as per a and b. Takes precedence over the overlapping PValidateData (PBuiltinList a) instance.

Since: 1.13.0

Instance details

Defined in Plutarch.Internal.Parse

Methods

pwithValidated :: forall (s :: S). Term s PData -> forall (r :: S -> Type). Term s r -> Term s r Source #

PValidateData (PBuiltinList PData) Source #

Checks that we have a List.

Since: 1.12.0

Instance details

Defined in Plutarch.Internal.Parse

Methods

pwithValidated :: forall (s :: S). Term s PData -> forall (r :: S -> Type). Term s r -> Term s r Source #

PValidateData a => PValidateData (PBuiltinList a) Source #

Checks that we have a List. Furthermore, checks that every element validates as per a.

Since: 1.12.0

Instance details

Defined in Plutarch.Internal.Parse

Methods

pwithValidated :: forall (s :: S). Term s PData -> forall (r :: S -> Type). Term s r -> Term s r Source #

Contains DefaultUni (PlutusRepr a) => PlutusType (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Internal.PlutusType

Associated Types

type PInner (PBuiltinList a) 
Instance details

Defined in Plutarch.Internal.PlutusType

Methods

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

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

(PShow a, Contains DefaultUni (PlutusRepr a)) => PShow (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Internal.Show

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)) 
Instance details

Defined in Plutarch.DataRepr.Internal

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

Methods

ptryFrom' :: forall (s :: S) (r :: S -> Type). 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 ('[] :: [PLabeledType])) 
Instance details

Defined in Plutarch.DataRepr.Internal

Methods

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

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

Defined in Plutarch.Internal.IsData

type PElemConstraint PBuiltinList a Source # 
Instance details

Defined in Plutarch.Internal.ListLike

type PElemConstraint PBuiltinList a = Contains DefaultUni (PlutusRepr a)
type PTryFromExcess PData (PAsData (PBuiltinList (PAsData a))) Source # 
Instance details

Defined in Plutarch.Internal.TryFrom

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

Defined in Plutarch.Internal.TryFrom

type AsHaskell (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Internal.Lift

type PlutusRepr (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Internal.Lift

type PInner (PBuiltinList a) Source # 
Instance details

Defined in Plutarch.Internal.PlutusType

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

pheadBuiltin :: forall (s :: S) (a :: S -> Type). Term s (PBuiltinList a :--> a) Source #

ptailBuiltin :: forall (s :: S) (a :: S -> Type). Term s (PBuiltinList a :--> PBuiltinList a) Source #

pheadTailBuiltin :: forall (a :: S -> Type) (b :: S -> Type) (s :: S). Term s (PBuiltinList a) -> (Term s a -> Term s (PBuiltinList a) -> Term s b) -> Term s b Source #

Use this in preference to pheadBuiltin and ptailBuiltin on the same PBuiltinList, as this will be faster. This is also faster than a pmatch, as the PNil case is omitted.

Since: 1.13.0

pchooseListBuiltin :: forall (s :: S) (a :: S -> Type) (b :: S -> Type). Term s (PBuiltinList a :--> (b :--> (b :--> b))) Source #

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

pconsBuiltin :: forall (s :: S) (a :: S -> Type). Term s (a :--> (PBuiltinList a :--> PBuiltinList a)) Source #