1.10.0 -- 29-01-2025
Added
pmax
andpmin
as new methods ofPOrd
#>
and#>=
as argument-flipping versions of#<
and#<=
pallBS
toPlutarch.ByteString
(originally fromplutarch-extra
)pisHexDigit
toPlutarch.String
(originally fromplutarch-extra
)preverse
andpcheckSorted
toPlutarch.List
(originally from
plutarch-extra
)ptraceIfNothing
,pisJust
,pmaybe
,pfromMaybe
,pjust
,pnothing
,
pAssertPJust
toPlutarch.Maybe
(originally fromplutarch-extra
)pexpectJustC
toPlutarch.TermCont
(originally fromplutarch-extra
)PCountable
andPEnumerable
type classes, as well as instancesPByte
type as a limited Plutarch-level equivalent toWord8
PLogicSemantics
, and construction functions, to help use of logical
PByteString
operationspandBS
,porBS
,pxorBS
,pcomplementBS
mirroring CIP-122 operationspzeroesBS
,ponesBS
,preplicateBS
, as wrappers for CIP-122's
ReplicateByte
compileOptimized
inPlutarch.Internal
, to optimize the generated UPLCPBitString
and associated functionality for CIP-122 and CIP-123 operations
on bits, inPlutarch.BitString
PEitherData
, aData
-encoded counterpart toPEither
, plus some functionsPositive
type inPlutarch.Positive
that is Haskell level equivalent of
PPositive
PUnsafeLiftDecl
andPConstantDecl
instances forPPositive
evalScriptUnlimited
toPlutarch.Evaluate
as unrestricted version ofevalScript
pmapMaybe
toPlutarch.Maybe
PLiftable
type classPlutarch.Builtin.Bool
modulePlutarch.Internal.Eq
modulePlutarch.Internal.Ord
modulepif'
toPlutarch.Prelude
pcond
as a Plutarch equivalent to multi-way ifPLiftable PRational
instancePDataFields
,DerivePDataLiftable
,PDataNewtype
now exported from the prelude- New methods for
Data
and Scott encoding derivation optimizeTerm
for separate optimization via UPLC from compilation- New numerical hierarchy in
Plutarch.Internal.Numeric
, plus new instances PNatural
type, corresponding to the HaskellNatural
- Support for SoP encoding of data
PSemigroup
andPMonoid
, as improved Plutarch versions ofSemigroup
and
Monoid
Repr.Data
module was added as a replacement for old Data/Scott/SOP encoded PlutusTypes- Unrolling utilities--
punrollBound
,punrollUnbound
, andpunrollUnboundWhole
--is added toPlutarch.Unroll
evalTerm'
is added toPlutarch.Evaluate
Changed
pconsBS
now takes aPByte
argument instead of aPInteger
onepindexBS
now returns aPByte
instead of aPInteger
pexpModInteger
is now inPlutarch.Integer
PMaybeData
no longer usesPDataRecord
Plutarch.Internal
is nowPlutarch.Internal.Term
to better reflect its
actual contentsPBool
definition is now inPlutarch.Builtin.Bool
PEq
type class definition is now inPlutarch.Internal.Eq
PPartialOrd
andPOrd
type class definitions are now in
Plutarch.Internal.Ord
pif
,pif'
,pand
,pand'
,por
,por'
,pnot
,#&&
,#||
are
now inPlutarch.Builtin.Bool
Term s PRational
is nowFractional
directly, instead of by way of
PFractional
Plutarch.Num
is nowPlutarch.Internal.Numeric
PIntegral
type class is now inPlutarch.Internal.Numeric
Plutarch.Integer
is nowPlutarch.Builtin.Integer
#<
,#<=
,#>=
,#>
are now part ofPOrd
PPositive
(andPositive
) are now exported from the prelude, along with
some functionalityPEither
,PPair
,PMaybe
andPList
use SOP encoding instead of Scott
Removed
plutarch-extra
, as all its functionality has been folded into Plutarch
itselfpbyteStr
(as it's deprecated)Plutarch.Bitwise
module, as its functionality has been superseded by more
type-safe operations inPlutarch.ByteString
andPlutarch.BitString
PUnsafeLiftDecl
andPConstantDecl
as they are replaced byPLiftable
Plutarch
module, as it served no useful purpose and was just confusingPType
synonym (useS -> Type
honestly instead)PSBool
and functionality (now inplutarch-ledger-api
)PFractional
type class (only one instance, unlikely to ever have more)PIsData PRational
instance (made no sense)PPartialOrd
(all its functionality is now inPOrd
)Plutarch.FFI
modulePNum
andPIntegral
(replaced by new numerical hierarchy)
Fixed
- Bug in
ppredecessorN
forPPosixTime
where order of subtraction was flipped - Bugs in
pintersection
andphull
that assigned wrong open/close bounds - Bug in
pafter
that will give opposite result when comparing against infinities
Thanks to
@kozross
@t4ccer
@albertodvp
@colll78
@jaredponn
@SeungheonOh