plutus-core-1.0.0.1: Language library for Plutus Core
Safe HaskellNone
LanguageHaskell2010

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 LamAbses.

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

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

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

Get all the direct child Uniques of the given Term.

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

Get all the direct child Terms of the given Term.

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

Get all the transitive child Terms of the given Term.

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

Get all the transitive child Uniques 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.

encodeTermTag :: Word8 -> Encoding Source #

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 #