plutus-core-1.0.0.1: Language library for Plutus Core
Safe Haskell None
Language Haskell2010

UntypedPlutusCore.Core

Synopsis

Documentation

termBinds :: Traversal' ( Term name uni fun ann) name Source #

Get all the direct child 'name a's of the given Term from LamAbs es.

termVars :: Traversal' ( Term name uni fun ann) name Source #

Get all the direct child 'name a's of the given Term from Var s.

termUniques :: HasUniques ( Term name uni fun ann) => Traversal' ( Term name uni fun ann) Unique Source #

Get all the direct child Unique s of the given Term .

termSubterms :: Traversal' ( Term name uni fun ann) ( Term name uni fun ann) Source #

Get all the direct child Term s of the given Term .

termSubtermsDeep :: Fold ( Term name uni fun ann) ( Term name uni fun ann) Source #

Get all the transitive child Term s of the given Term .

termUniquesDeep :: HasUniques ( Term name uni fun ann) => Fold ( Term name uni fun ann) Unique Source #

Get all the transitive child Unique s of the given Term .

Base functors

data TermF (name :: Type ) (uni :: Type -> Type ) (fun :: Type ) (ann :: Type ) r Source #

Constructors

VarF !ann !name
LamAbsF !ann !name !r
ApplyF !ann !r !r
ForceF !ann !r
DelayF !ann !r
ConstantF !ann !( Some ( ValueOf uni))
BuiltinF !ann !fun
ErrorF !ann

Instances

Instances details
Functor ( TermF name uni fun ann) Source #
Instance details

Defined in UntypedPlutusCore.Core.Instance.Recursive

Methods

fmap :: (a -> b) -> TermF name uni fun ann a -> TermF name uni fun ann b Source #

(<$) :: a -> TermF name uni fun ann b -> TermF name uni fun ann a Source #

Foldable ( TermF name uni fun ann) Source #
Instance details

Defined in UntypedPlutusCore.Core.Instance.Recursive

Methods

fold :: Monoid m => TermF name uni fun ann m -> m Source #

foldMap :: Monoid m => (a -> m) -> TermF name uni fun ann a -> m Source #

foldMap' :: Monoid m => (a -> m) -> TermF name uni fun ann a -> m Source #

foldr :: (a -> b -> b) -> b -> TermF name uni fun ann a -> b Source #

foldr' :: (a -> b -> b) -> b -> TermF name uni fun ann a -> b Source #

foldl :: (b -> a -> b) -> b -> TermF name uni fun ann a -> b Source #

foldl' :: (b -> a -> b) -> b -> TermF name uni fun ann a -> b Source #

foldr1 :: (a -> a -> a) -> TermF name uni fun ann a -> a Source #

foldl1 :: (a -> a -> a) -> TermF name uni fun ann a -> a Source #

toList :: TermF name uni fun ann a -> [a] Source #

null :: TermF name uni fun ann a -> Bool Source #

length :: TermF name uni fun ann a -> Int Source #

elem :: Eq a => a -> TermF name uni fun ann a -> Bool Source #

maximum :: Ord a => TermF name uni fun ann a -> a Source #

minimum :: Ord a => TermF name uni fun ann a -> a Source #

sum :: Num a => TermF name uni fun ann a -> a Source #

product :: Num a => TermF name uni fun ann a -> a Source #

Traversable ( TermF name uni fun ann) Source #
Instance details

Defined in UntypedPlutusCore.Core.Instance.Recursive

Methods

traverse :: Applicative f => (a -> f b) -> TermF name uni fun ann a -> f ( TermF name uni fun ann b) Source #

sequenceA :: Applicative f => TermF name uni fun ann (f a) -> f ( TermF name uni fun ann a) Source #

mapM :: Monad m => (a -> m b) -> TermF name uni fun ann a -> m ( TermF name uni fun ann b) Source #

sequence :: Monad m => TermF name uni fun ann (m a) -> m ( TermF name uni fun ann a) Source #

termTagWidth :: NumBits Source #

Using 4 bits to encode term tags.

encodeTerm :: forall name uni fun ann. ( Closed uni, uni `Everywhere` Flat , PrettyPlc ( Term name uni fun ann), Flat fun, Flat ann, Flat name, Flat ( Binder name)) => Term name uni fun ann -> Encoding Source #

decodeTerm :: forall name uni fun ann. ( Closed uni, uni `Everywhere` Flat , PrettyPlc ( Term name uni fun ann), Flat fun, Flat ann, Flat name, Flat ( Binder name)) => (fun -> Bool ) -> Get ( Term name uni fun ann) Source #

sizeTerm :: forall name uni fun ann. ( Closed uni, uni `Everywhere` Flat , PrettyPlc ( Term name uni fun ann), Flat fun, Flat ann, Flat name, Flat ( Binder name)) => Term name uni fun ann -> NumBits -> NumBits Source #

decodeProgram :: forall name uni fun ann. ( Closed uni, uni `Everywhere` Flat , PrettyPlc ( Term name uni fun ann), Flat fun, Flat ann, Flat name, Flat ( Binder name)) => (fun -> Bool ) -> Get ( Program name uni fun ann) Source #