| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
PlutusCore
Synopsis
- parseProgram :: (MonadError ParserErrorBundle m, MonadQuote m) => Text -> m (Program TyName Name DefaultUni DefaultFun SrcSpan)
- parseTerm :: (MonadError ParserErrorBundle m, MonadQuote m) => Text -> m (Term TyName Name DefaultUni DefaultFun SrcSpan)
- parseType :: (MonadError ParserErrorBundle m, MonadQuote m) => Text -> m (Type TyName DefaultUni SrcSpan)
- data SourcePos
- data SrcSpan = SrcSpan {
- srcSpanFile :: FilePath
- srcSpanSLine :: Int
- srcSpanSCol :: Int
- srcSpanELine :: Int
- srcSpanECol :: Int
- data SrcSpans
- data Some (tag :: k -> Type) where
- data SomeTypeIn (uni :: Type -> Type) = SomeTypeIn !(uni (Esc a))
- data Kinded (uni :: Type -> Type) ta where
- data ValueOf (uni :: Type -> Type) a = ValueOf !(uni (Esc a)) !a
- someValueOf :: forall a uni. uni (Esc a) -> a -> Some (ValueOf uni)
- someValue :: forall a (uni :: Type -> Type). Contains uni a => a -> Some (ValueOf uni)
- someValueType :: forall (uni :: Type -> Type). Some (ValueOf uni) -> SomeTypeIn uni
- data Esc (a :: k)
- class Contains (uni :: Type -> Type) (a :: k) where
- class Closed (uni :: Type -> Type) where
- type Everywhere (uni :: Type -> Type) (constr :: Type -> Constraint)
- encodeUni :: uni a -> [Int]
- withDecodedUni :: (forall k (a :: k). Typeable k => uni (Esc a) -> DecodeUniM r) -> DecodeUniM r
- bring :: Everywhere uni constr => proxy constr -> uni (Esc a) -> (constr a => r) -> r
- type family EverywhereAll (uni :: Type -> Type) (constrs :: [Type -> Constraint]) where ...
- knownUniOf :: forall {k} uni (a :: k) proxy. Contains uni a => proxy a -> uni (Esc a)
- class GShow (t :: k -> Type) where
- gshowsPrec :: forall (a :: k). Int -> t a -> ShowS
- show :: Show a => a -> String
- class GEq (f :: k -> Type) where
- class HasUniApply (uni :: Type -> Type) where
- checkStar :: forall uni a (x :: a). Typeable a => uni (Esc x) -> Maybe (a :~: Type)
- withApplicable :: forall a ab (f :: ab) (x :: a) uni m r. (Typeable ab, Typeable a, MonadPlus m) => uni (Esc f) -> uni (Esc x) -> (forall b. (Typeable b, ab ~ (a -> b)) => m r) -> m r
- data (a :: k) :~: (b :: k) where
- type (<:) (uni1 :: Type -> Type) (uni2 :: Type -> Type) = Everywhere uni1 (Includes uni2 :: Type -> Constraint)
- type HasTypeLevel (uni :: Type -> Type) (x :: a) = KnownTypeAst Void uni (ElaborateBuiltin uni x)
- type HasTermLevel (uni :: Type -> Type) = Includes uni :: a -> Constraint
- type HasTypeAndTermLevel (uni :: Type -> Type) (x :: a) = (HasTypeLevel uni x, HasTermLevel uni x)
- data DefaultUni a where
- DefaultUniInteger :: DefaultUni (Esc Integer)
- DefaultUniByteString :: DefaultUni (Esc ByteString)
- DefaultUniString :: DefaultUni (Esc Text)
- DefaultUniUnit :: DefaultUni (Esc ())
- DefaultUniBool :: DefaultUni (Esc Bool)
- DefaultUniProtoArray :: DefaultUni (Esc Vector)
- DefaultUniProtoList :: DefaultUni (Esc [])
- DefaultUniProtoPair :: DefaultUni (Esc (,))
- DefaultUniApply :: forall {k1} {k2} (f :: k1 -> k2) (a1 :: k1). !(DefaultUni (Esc f)) -> !(DefaultUni (Esc a1)) -> DefaultUni (Esc (f a1))
- DefaultUniData :: DefaultUni (Esc Data)
- DefaultUniBLS12_381_G1_Element :: DefaultUni (Esc Element)
- DefaultUniBLS12_381_G2_Element :: DefaultUni (Esc Element)
- DefaultUniBLS12_381_MlResult :: DefaultUni (Esc MlResult)
- DefaultUniValue :: DefaultUni (Esc Value)
- pattern DefaultUniList :: forall {a} {k1} {k2} {f :: k1 -> k2} {a1 :: k1}. () => forall. (a ~ Esc (f a1), Esc f ~ Esc []) => DefaultUni (Esc a1) -> DefaultUni a
- pattern DefaultUniPair :: forall {a} {k1} {k2} {f1 :: k1 -> k2} {a1 :: k1} {k3} {k4} {f2 :: k3 -> k4} {a2 :: k3}. () => forall. (a ~ Esc (f1 a1), Esc f1 ~ Esc (f2 a2), Esc f2 ~ Esc (,)) => DefaultUni (Esc a2) -> DefaultUni (Esc a1) -> DefaultUni a
- pattern DefaultUniArray :: forall {a} {k1} {k2} {f :: k1 -> k2} {a1 :: k1}. () => forall. (a ~ Esc (f a1), Esc f ~ Esc Vector) => DefaultUni (Esc a1) -> DefaultUni a
- data DefaultFun
- = AddInteger
- | SubtractInteger
- | MultiplyInteger
- | DivideInteger
- | QuotientInteger
- | RemainderInteger
- | ModInteger
- | EqualsInteger
- | LessThanInteger
- | LessThanEqualsInteger
- | AppendByteString
- | ConsByteString
- | SliceByteString
- | LengthOfByteString
- | IndexByteString
- | EqualsByteString
- | LessThanByteString
- | LessThanEqualsByteString
- | Sha2_256
- | Sha3_256
- | Blake2b_256
- | VerifyEd25519Signature
- | VerifyEcdsaSecp256k1Signature
- | VerifySchnorrSecp256k1Signature
- | AppendString
- | EqualsString
- | EncodeUtf8
- | DecodeUtf8
- | IfThenElse
- | ChooseUnit
- | Trace
- | FstPair
- | SndPair
- | ChooseList
- | MkCons
- | HeadList
- | TailList
- | NullList
- | ChooseData
- | ConstrData
- | MapData
- | ListData
- | IData
- | BData
- | UnConstrData
- | UnMapData
- | UnListData
- | UnIData
- | UnBData
- | EqualsData
- | SerialiseData
- | MkPairData
- | MkNilData
- | MkNilPairData
- | Bls12_381_G1_add
- | Bls12_381_G1_neg
- | Bls12_381_G1_scalarMul
- | Bls12_381_G1_equal
- | Bls12_381_G1_hashToGroup
- | Bls12_381_G1_compress
- | Bls12_381_G1_uncompress
- | Bls12_381_G2_add
- | Bls12_381_G2_neg
- | Bls12_381_G2_scalarMul
- | Bls12_381_G2_equal
- | Bls12_381_G2_hashToGroup
- | Bls12_381_G2_compress
- | Bls12_381_G2_uncompress
- | Bls12_381_millerLoop
- | Bls12_381_mulMlResult
- | Bls12_381_finalVerify
- | Keccak_256
- | Blake2b_224
- | IntegerToByteString
- | ByteStringToInteger
- | AndByteString
- | OrByteString
- | XorByteString
- | ComplementByteString
- | ReadBit
- | WriteBits
- | ReplicateByte
- | ShiftByteString
- | RotateByteString
- | CountSetBits
- | FindFirstSetBit
- | Ripemd_160
- | ExpModInteger
- | DropList
- | LengthOfArray
- | ListToArray
- | IndexArray
- | Bls12_381_G1_multiScalarMul
- | Bls12_381_G2_multiScalarMul
- | InsertCoin
- | LookupCoin
- | UnionValue
- | ValueContains
- | ValueData
- | UnValueData
- | ScaleValue
- data Term tyname name (uni :: Type -> Type) fun ann
- = Var ann name
- | LamAbs ann name (Type tyname uni ann) (Term tyname name uni fun ann)
- | Apply ann (Term tyname name uni fun ann) (Term tyname name uni fun ann)
- | TyAbs ann tyname (Kind ann) (Term tyname name uni fun ann)
- | TyInst ann (Term tyname name uni fun ann) (Type tyname uni ann)
- | IWrap ann (Type tyname uni ann) (Type tyname uni ann) (Term tyname name uni fun ann)
- | Unwrap ann (Term tyname name uni fun ann)
- | Constr ann (Type tyname uni ann) Word64 [Term tyname name uni fun ann]
- | Case ann (Type tyname uni ann) (Term tyname name uni fun ann) [Term tyname name uni fun ann]
- | Constant ann (Some (ValueOf uni))
- | Builtin ann fun
- | Error ann (Type tyname uni ann)
- termSubterms :: forall tyname name (uni :: Type -> Type) fun ann f. Applicative f => (Term tyname name uni fun ann -> f (Term tyname name uni fun ann)) -> Term tyname name uni fun ann -> f (Term tyname name uni fun ann)
- termSubtypes :: forall tyname name (uni :: Type -> Type) fun ann f. Applicative f => (Type tyname uni ann -> f (Type tyname uni ann)) -> Term tyname name uni fun ann -> f (Term tyname name uni fun ann)
- termMapNames :: forall tyname tyname' name name' (uni :: Type -> Type) fun ann. (tyname -> tyname') -> (name -> name') -> Term tyname name uni fun ann -> Term tyname' name' uni fun ann
- programMapNames :: forall tyname tyname' name name' (uni :: Type -> Type) fun ann. (tyname -> tyname') -> (name -> name') -> Program tyname name uni fun ann -> Program tyname' name' uni fun ann
- type family UniOf a :: Type -> Type
- data Type tyname (uni :: Type -> Type) ann
- = TyVar ann tyname
- | TyFun ann (Type tyname uni ann) (Type tyname uni ann)
- | TyIFix ann (Type tyname uni ann) (Type tyname uni ann)
- | TyForall ann tyname (Kind ann) (Type tyname uni ann)
- | TyBuiltin ann (SomeTypeIn uni)
- | TyLam ann tyname (Kind ann) (Type tyname uni ann)
- | TyApp ann (Type tyname uni ann) (Type tyname uni ann)
- | TySOP ann [[Type tyname uni ann]]
- typeSubtypes :: forall tyname (uni :: Type -> Type) ann f. Applicative f => (Type tyname uni ann -> f (Type tyname uni ann)) -> Type tyname uni ann -> f (Type tyname uni ann)
- typeMapNames :: forall tyname tyname' (uni :: Type -> Type) ann. (tyname -> tyname') -> Type tyname uni ann -> Type tyname' uni ann
- data Kind ann
- toPatFuncKind :: Kind () -> Kind ()
- fromPatFuncKind :: Kind () -> Maybe (Kind ())
- argsFunKind :: Kind ann -> [Kind ann]
- data ParserError
- data Version = Version {}
- data Program tyname name (uni :: Type -> Type) fun ann = Program {}
- data Name = Name {
- _nameText :: Text
- _nameUnique :: Unique
- newtype TyName = TyName {}
- newtype Unique = Unique {}
- newtype UniqueMap unique a = UniqueMap {
- unUniqueMap :: IntMap a
- newtype UniqueSet unique = UniqueSet {}
- newtype Normalized a = Normalized {
- unNormalized :: a
- latestVersion :: Version
- termAnn :: forall tyname name (uni :: Type -> Type) fun ann. Term tyname name uni fun ann -> ann
- typeAnn :: forall tyname (uni :: Type -> Type) ann. Type tyname uni ann -> ann
- tyVarDeclAnn :: forall tyname ann f. Functor f => (ann -> f ann) -> TyVarDecl tyname ann -> f (TyVarDecl tyname ann)
- tyVarDeclName :: forall tyname1 ann tyname2 f. Functor f => (tyname1 -> f tyname2) -> TyVarDecl tyname1 ann -> f (TyVarDecl tyname2 ann)
- tyVarDeclKind :: forall tyname ann f. Functor f => (Kind ann -> f (Kind ann)) -> TyVarDecl tyname ann -> f (TyVarDecl tyname ann)
- varDeclAnn :: forall tyname name (uni :: Type -> Type) ann f. Functor f => (ann -> f ann) -> VarDecl tyname name uni ann -> f (VarDecl tyname name uni ann)
- varDeclName :: forall tyname name1 (uni :: Type -> Type) ann name2 f. Functor f => (name1 -> f name2) -> VarDecl tyname name1 uni ann -> f (VarDecl tyname name2 uni ann)
- varDeclType :: forall tyname1 name (uni1 :: Type -> Type) ann tyname2 (uni2 :: Type -> Type) f. Functor f => (Type tyname1 uni1 ann -> f (Type tyname2 uni2 ann)) -> VarDecl tyname1 name uni1 ann -> f (VarDecl tyname2 name uni2 ann)
- tyDeclAnn :: forall tyname (uni :: Type -> Type) ann f. Functor f => (ann -> f ann) -> TyDecl tyname uni ann -> f (TyDecl tyname uni ann)
- tyDeclType :: forall tyname1 (uni1 :: Type -> Type) ann tyname2 (uni2 :: Type -> Type) f. Functor f => (Type tyname1 uni1 ann -> f (Type tyname2 uni2 ann)) -> TyDecl tyname1 uni1 ann -> f (TyDecl tyname2 uni2 ann)
- tyDeclKind :: forall tyname (uni :: Type -> Type) ann f. Functor f => (Kind ann -> f (Kind ann)) -> TyDecl tyname uni ann -> f (TyDecl tyname uni ann)
- progAnn :: forall tyname name (uni :: Type -> Type) fun ann f. Functor f => (ann -> f ann) -> Program tyname name uni fun ann -> f (Program tyname name uni fun ann)
- progVer :: forall tyname name (uni :: Type -> Type) fun ann f. Functor f => (Version -> f Version) -> Program tyname name uni fun ann -> f (Program tyname name uni fun ann)
- progTerm :: forall tyname1 name1 (uni1 :: Type -> Type) fun1 ann tyname2 name2 (uni2 :: Type -> Type) fun2 f. Functor f => (Term tyname1 name1 uni1 fun1 ann -> f (Term tyname2 name2 uni2 fun2 ann)) -> Program tyname1 name1 uni1 fun1 ann -> f (Program tyname2 name2 uni2 fun2 ann)
- mapFun :: forall fun fun' tyname name (uni :: Type -> Type) ann. (fun -> fun') -> Term tyname name uni fun ann -> Term tyname name uni fun' ann
- newtype DeBruijn = DeBruijn {}
- newtype TyDeBruijn = TyDeBruijn DeBruijn
- data NamedDeBruijn = NamedDeBruijn {
- ndbnString :: !Text
- ndbnIndex :: !Index
- newtype NamedTyDeBruijn = NamedTyDeBruijn NamedDeBruijn
- deBruijnTerm :: forall m (uni :: Type -> Type) fun ann. MonadError FreeVariableError m => Term TyName Name uni fun ann -> m (Term NamedTyDeBruijn NamedDeBruijn uni fun ann)
- unDeBruijnTerm :: forall m (uni :: Type -> Type) fun ann. (MonadQuote m, MonadError FreeVariableError m) => Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> m (Term TyName Name uni fun ann)
- type family HasUniques a
- class Rename a where
- rename :: MonadQuote m => a -> m a
- module PlutusCore.TypeCheck
- normalizeTypesIn :: forall tyname name (uni :: Type -> Type) m fun ann. (HasUnique tyname TypeUnique, HasUnique name TermUnique, MonadNormalizeType uni m) => Term tyname name uni fun ann -> m (Term tyname name uni fun ann)
- normalizeTypesInProgram :: forall tyname name (uni :: Type -> Type) m fun ann. (HasUnique tyname TypeUnique, HasUnique name TermUnique, MonadNormalizeType uni m) => Program tyname name uni fun ann -> m (Program tyname name uni fun ann)
- data TypeError term (uni :: Type -> Type) fun ann
- data Error (uni :: Type -> Type) fun ann
- = ParseErrorE !ParserErrorBundle
- | UniqueCoherencyErrorE !(UniqueError ann)
- | TypeErrorE !(TypeError (Term TyName Name uni fun ()) uni fun ann)
- | NormCheckErrorE !(NormCheckError TyName Name uni fun ann)
- | FreeVariableErrorE !FreeVariableError
- data NormCheckError tyname name (uni :: Type -> Type) fun ann
- data UniqueError ann
- = MultiplyDefined !Unique !ann !ann
- | IncoherentUsage !Unique !ann !ann
- | FreeVariable !Unique !ann
- data FreeVariableError
- = FreeUnique !Unique
- | FreeIndex !Index
- type Quote = QuoteT Identity
- runQuote :: Quote a -> a
- data QuoteT (m :: Type -> Type) a
- runQuoteT :: Monad m => QuoteT m a -> m a
- class Monad m => MonadQuote (m :: Type -> Type)
- liftQuote :: MonadQuote m => Quote a -> m a
- freshUnique :: MonadQuote m => m Unique
- freshName :: MonadQuote m => Text -> m Name
- freshTyName :: MonadQuote m => Text -> m TyName
- data EvaluationResult a
- applyProgram :: forall m a tyname name (uni :: Type -> Type) fun. (MonadError ApplyProgramError m, Semigroup a) => Program tyname name uni fun a -> Program tyname name uni fun a -> m (Program tyname name uni fun a)
- termAstSize :: forall tyname name (uni :: Type -> Type) fun ann. Term tyname name uni fun ann -> AstSize
- typeAstSize :: forall tyname (uni :: Type -> Type) ann. Type tyname uni ann -> AstSize
- kindAstSize :: Kind a -> AstSize
- programAstSize :: forall tyname name (uni :: Type -> Type) fun ann. Program tyname name uni fun ann -> AstSize
Parser
parseProgram :: (MonadError ParserErrorBundle m, MonadQuote m) => Text -> m (Program TyName Name DefaultUni DefaultFun SrcSpan) Source #
parseTerm :: (MonadError ParserErrorBundle m, MonadQuote m) => Text -> m (Term TyName Name DefaultUni DefaultFun SrcSpan) Source #
Parse a PLC term. The resulting program will have fresh names. The underlying monad must be capable of handling any parse errors.
parseType :: (MonadError ParserErrorBundle m, MonadQuote m) => Text -> m (Type TyName DefaultUni SrcSpan) Source #
Parse a PLC type. The resulting program will have fresh names. The underlying monad must be capable of handling any parse errors.
Instances
The span between two source locations.
This corresponds roughly to the SrcSpan used by GHC,
but we define our own version so we don't have to depend on ghc to use it.
The line and column numbers are 1-based, and the unit is Unicode code point (or Char).
Constructors
| SrcSpan | |
Fields
| |
Instances
| Generic SrcSpan Source # | |||||
Defined in PlutusCore.Annotation Associated Types
| |||||
| Show SrcSpan Source # | |||||
| NFData SrcSpan Source # | |||||
Defined in PlutusCore.Annotation | |||||
| Eq SrcSpan Source # | |||||
| Ord SrcSpan Source # | |||||
Defined in PlutusCore.Annotation | |||||
| Hashable SrcSpan Source # | |||||
Defined in PlutusCore.Annotation | |||||
| Flat SrcSpan Source # | |||||
| Pretty SrcSpan Source # | |||||
Defined in PlutusCore.Annotation | |||||
| Exception (UniqueError SrcSpan) Source # | |||||
Defined in PlutusCore.Error Methods toException :: UniqueError SrcSpan -> SomeException Source # fromException :: SomeException -> Maybe (UniqueError SrcSpan) Source # | |||||
| type Rep SrcSpan Source # | |||||
Defined in PlutusCore.Annotation type Rep SrcSpan = D1 ('MetaData "SrcSpan" "PlutusCore.Annotation" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (C1 ('MetaCons "SrcSpan" 'PrefixI 'True) ((S1 ('MetaSel ('Just "srcSpanFile") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePath) :*: S1 ('MetaSel ('Just "srcSpanSLine") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :*: (S1 ('MetaSel ('Just "srcSpanSCol") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: (S1 ('MetaSel ('Just "srcSpanELine") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "srcSpanECol") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))) | |||||
Instances
| Monoid SrcSpans Source # | |||||
| Semigroup SrcSpans Source # | |||||
| Generic SrcSpans Source # | |||||
Defined in PlutusCore.Annotation Associated Types
| |||||
| Show SrcSpans Source # | |||||
| NFData SrcSpans Source # | |||||
Defined in PlutusCore.Annotation | |||||
| Eq SrcSpans Source # | |||||
| Ord SrcSpans Source # | |||||
Defined in PlutusCore.Annotation | |||||
| Hashable SrcSpans Source # | |||||
Defined in PlutusCore.Annotation | |||||
| MonoFoldable SrcSpans Source # | |||||
Defined in PlutusCore.Annotation Methods ofoldMap :: Monoid m => (Element SrcSpans -> m) -> SrcSpans -> m ofoldr :: (Element SrcSpans -> b -> b) -> b -> SrcSpans -> b ofoldl' :: (a -> Element SrcSpans -> a) -> a -> SrcSpans -> a otoList :: SrcSpans -> [Element SrcSpans] oall :: (Element SrcSpans -> Bool) -> SrcSpans -> Bool oany :: (Element SrcSpans -> Bool) -> SrcSpans -> Bool olength64 :: SrcSpans -> Int64 ocompareLength :: Integral i => SrcSpans -> i -> Ordering otraverse_ :: Applicative f => (Element SrcSpans -> f b) -> SrcSpans -> f () ofor_ :: Applicative f => SrcSpans -> (Element SrcSpans -> f b) -> f () omapM_ :: Applicative m => (Element SrcSpans -> m ()) -> SrcSpans -> m () oforM_ :: Applicative m => SrcSpans -> (Element SrcSpans -> m ()) -> m () ofoldlM :: Monad m => (a -> Element SrcSpans -> m a) -> a -> SrcSpans -> m a ofoldMap1Ex :: Semigroup m => (Element SrcSpans -> m) -> SrcSpans -> m ofoldr1Ex :: (Element SrcSpans -> Element SrcSpans -> Element SrcSpans) -> SrcSpans -> Element SrcSpans ofoldl1Ex' :: (Element SrcSpans -> Element SrcSpans -> Element SrcSpans) -> SrcSpans -> Element SrcSpans headEx :: SrcSpans -> Element SrcSpans lastEx :: SrcSpans -> Element SrcSpans unsafeHead :: SrcSpans -> Element SrcSpans unsafeLast :: SrcSpans -> Element SrcSpans maximumByEx :: (Element SrcSpans -> Element SrcSpans -> Ordering) -> SrcSpans -> Element SrcSpans minimumByEx :: (Element SrcSpans -> Element SrcSpans -> Ordering) -> SrcSpans -> Element SrcSpans | |||||
| Flat SrcSpans Source # | |||||
| Pretty SrcSpans Source # | |||||
Defined in PlutusCore.Annotation | |||||
| type Rep SrcSpans Source # | |||||
Defined in PlutusCore.Annotation | |||||
| type Element SrcSpans Source # | |||||
Defined in PlutusCore.Annotation | |||||
Builtins
data Some (tag :: k -> Type) where #
Instances
| (Closed uni, Everywhere uni PrettyConst) => PrettyBy ConstConfig (Some (ValueOf uni)) Source # | |
Defined in PlutusCore.Pretty.PrettyConst Methods prettyBy :: ConstConfig -> Some (ValueOf uni) -> Doc ann # prettyListBy :: ConstConfig -> [Some (ValueOf uni)] -> Doc ann # | |
| Applicative m => Monoid (Some m) | |
| Applicative m => Semigroup (Some m) | |
| GRead f => Read (Some f) | |
| GShow tag => Show (Some tag) | |
| GNFData tag => NFData (Some tag) | |
Defined in Data.Some.Newtype | |
| GEq tag => Eq (Some tag) | |
| GCompare tag => Ord (Some tag) | |
Defined in Data.Some.Newtype | |
| (Closed uni, GEq uni, Everywhere uni Eq, Everywhere uni Hashable) => Hashable (Some (ValueOf uni)) Source # | |
Defined in Universe.Core | |
| (Closed uni, Everywhere uni Flat) => Flat (Some (ValueOf uni)) | |
| (Closed uni, Everywhere uni ExMemoryUsage) => ExMemoryUsage (Some (ValueOf uni)) Source # | |
Defined in PlutusCore.Evaluation.Machine.ExMemoryUsage | |
| (Closed uni, Everywhere uni PrettyConst) => Pretty (Some (ValueOf uni)) Source # | |
data SomeTypeIn (uni :: Type -> Type) Source #
A particular type from a universe.
Constructors
| SomeTypeIn !(uni (Esc a)) |
Instances
| PrettyBy RenderContext (SomeTypeIn DefaultUni) Source # | |
Defined in PlutusCore.Default.Universe Methods prettyBy :: RenderContext -> SomeTypeIn DefaultUni -> Doc ann # prettyListBy :: RenderContext -> [SomeTypeIn DefaultUni] -> Doc ann # | |
| GShow uni => Show (SomeTypeIn uni) Source # | |
Defined in Universe.Core | |
| Closed uni => NFData (SomeTypeIn uni) Source # | |
Defined in Universe.Core Methods rnf :: SomeTypeIn uni -> () Source # | |
| GEq uni => Eq (SomeTypeIn uni) Source # | |
Defined in Universe.Core Methods (==) :: SomeTypeIn uni -> SomeTypeIn uni -> Bool Source # (/=) :: SomeTypeIn uni -> SomeTypeIn uni -> Bool Source # | |
| GCompare uni => Ord (SomeTypeIn uni) Source # | |
Defined in Universe.Core Methods compare :: SomeTypeIn uni -> SomeTypeIn uni -> Ordering Source # (<) :: SomeTypeIn uni -> SomeTypeIn uni -> Bool Source # (<=) :: SomeTypeIn uni -> SomeTypeIn uni -> Bool Source # (>) :: SomeTypeIn uni -> SomeTypeIn uni -> Bool Source # (>=) :: SomeTypeIn uni -> SomeTypeIn uni -> Bool Source # max :: SomeTypeIn uni -> SomeTypeIn uni -> SomeTypeIn uni Source # min :: SomeTypeIn uni -> SomeTypeIn uni -> SomeTypeIn uni Source # | |
| (Closed uni, GEq uni) => Hashable (SomeTypeIn uni) Source # | |
Defined in Universe.Core | |
| Closed uni => Flat (SomeTypeIn uni) | |
Defined in PlutusCore.FlatInstances Methods encode :: SomeTypeIn uni -> Encoding decode :: Get (SomeTypeIn uni) size :: SomeTypeIn uni -> NumBits -> NumBits | |
| Pretty (SomeTypeIn DefaultUni) Source # | |
Defined in PlutusCore.Default.Universe Methods pretty :: SomeTypeIn DefaultUni -> Doc ann # prettyList :: [SomeTypeIn DefaultUni] -> Doc ann # | |
| Pretty (SomeTypeIn uni) => Pretty (SomeTypeIn (Kinded uni)) Source # | |
Defined in PlutusCore.Pretty.PrettyConst Methods pretty :: SomeTypeIn (Kinded uni) -> Doc ann # prettyList :: [SomeTypeIn (Kinded uni)] -> Doc ann # | |
data Kinded (uni :: Type -> Type) ta where Source #
Constructors
| Kinded :: forall k (uni :: Type -> Type) (a :: k). Typeable k => !(uni (Esc a)) -> Kinded uni (Esc a) |
Instances
| GShow uni => GShow (Kinded uni :: Type -> Type) Source # | |
Defined in Universe.Core Methods gshowsPrec :: Int -> Kinded uni a -> ShowS # | |
| (Typeable k, Contains uni a) => Contains (Kinded uni) (a :: k) Source # | A |
| Pretty (SomeTypeIn uni) => Pretty (SomeTypeIn (Kinded uni)) Source # | |
Defined in PlutusCore.Pretty.PrettyConst Methods pretty :: SomeTypeIn (Kinded uni) -> Doc ann # prettyList :: [SomeTypeIn (Kinded uni)] -> Doc ann # | |
| GShow uni => Show (Kinded uni ta) Source # | |
data ValueOf (uni :: Type -> Type) a Source #
A value of a particular type from a universe.
Instances
| (Closed uni, Everywhere uni NFData) => GNFData (ValueOf uni :: Type -> Type) Source # | |
Defined in Universe.Core | |
| (GCompare uni, Closed uni, Everywhere uni Ord, Everywhere uni Eq) => GCompare (ValueOf uni :: Type -> Type) Source # | |
Defined in Universe.Core | |
| (GEq uni, Closed uni, Everywhere uni Eq) => GEq (ValueOf uni :: Type -> Type) Source # | |
| (GShow uni, Closed uni, Everywhere uni Show) => GShow (ValueOf uni :: Type -> Type) Source # | |
Defined in Universe.Core Methods gshowsPrec :: Int -> ValueOf uni a -> ShowS # | |
| (Closed uni, Everywhere uni PrettyConst) => PrettyBy ConstConfig (ValueOf uni a) Source # | |
Defined in PlutusCore.Pretty.PrettyConst Methods prettyBy :: ConstConfig -> ValueOf uni a -> Doc ann # prettyListBy :: ConstConfig -> [ValueOf uni a] -> Doc ann # | |
| (Closed uni, Everywhere uni PrettyConst) => PrettyBy ConstConfig (Some (ValueOf uni)) Source # | |
Defined in PlutusCore.Pretty.PrettyConst Methods prettyBy :: ConstConfig -> Some (ValueOf uni) -> Doc ann # prettyListBy :: ConstConfig -> [Some (ValueOf uni)] -> Doc ann # | |
| (GShow uni, Closed uni, Everywhere uni Show) => Show (ValueOf uni a) Source # | |
| (Closed uni, Everywhere uni NFData) => NFData (ValueOf uni a) Source # | |
Defined in Universe.Core | |
| (GEq uni, Closed uni, Everywhere uni Eq) => Eq (ValueOf uni a) Source # | |
| (GCompare uni, Closed uni, Everywhere uni Ord, Everywhere uni Eq) => Ord (ValueOf uni a) Source # | |
Defined in Universe.Core Methods compare :: ValueOf uni a -> ValueOf uni a -> Ordering Source # (<) :: ValueOf uni a -> ValueOf uni a -> Bool Source # (<=) :: ValueOf uni a -> ValueOf uni a -> Bool Source # (>) :: ValueOf uni a -> ValueOf uni a -> Bool Source # (>=) :: ValueOf uni a -> ValueOf uni a -> Bool Source # max :: ValueOf uni a -> ValueOf uni a -> ValueOf uni a Source # min :: ValueOf uni a -> ValueOf uni a -> ValueOf uni a Source # | |
| (Closed uni, GEq uni, Everywhere uni Eq, Everywhere uni Hashable) => Hashable (ValueOf uni a) Source # | |
Defined in Universe.Core | |
| (Closed uni, GEq uni, Everywhere uni Eq, Everywhere uni Hashable) => Hashable (Some (ValueOf uni)) Source # | |
Defined in Universe.Core | |
| (Closed uni, Everywhere uni Flat) => Flat (Some (ValueOf uni)) | |
| (Closed uni, Everywhere uni ExMemoryUsage) => ExMemoryUsage (Some (ValueOf uni)) Source # | |
Defined in PlutusCore.Evaluation.Machine.ExMemoryUsage | |
| (Closed uni, Everywhere uni PrettyConst) => Pretty (ValueOf uni a) Source # | |
Defined in PlutusCore.Pretty.PrettyConst | |
| (Closed uni, Everywhere uni PrettyConst) => Pretty (Some (ValueOf uni)) Source # | |
someValueOf :: forall a uni. uni (Esc a) -> a -> Some (ValueOf uni) Source #
Wrap a value into Some (ValueOf uni), given its explicit type tag.
someValue :: forall a (uni :: Type -> Type). Contains uni a => a -> Some (ValueOf uni) Source #
Wrap a value into Some (ValueOf uni), provided its type is in the universe.
someValueType :: forall (uni :: Type -> Type). Some (ValueOf uni) -> SomeTypeIn uni Source #
class Contains (uni :: Type -> Type) (a :: k) where Source #
A class for enumerating types and fully instantiated type formers that uni contains.
For example, a particular ExampleUni may have monomorphic types in it:
instance ExampleUni Contains Integer where ...
instance ExampleUni Contains Bool where ...
as well as polymorphic ones:
instance ExampleUni Contains [] where ...
instance ExampleUni Contains (,) where ...
as well as their instantiations:
instance ExampleUni Contains a => ExampleUni Contains [a] where ...
instance (ExampleUni Contains a, ExampleUni Contains b) => ExampleUni Contains (a, b) where ...
(a universe can have any subset of the mentioned sorts of types, for example it's fine to have instantiated polymorphic types and not have uninstantiated ones and vice versa)
Note that when used as a constraint of a function Contains does not allow you to directly
express things like "uni has the Integer, Bool and [] types and type formers",
because [] is not fully instantiated. So you can only say "uni has Integer, Bool,
[Integer], [Bool], [[Integer]], [[Bool]] etc" and such manual enumeration is annoying,
so we'd really like to be able to say that uni has lists of arbitrary built-in types
(including lists of lists etc). Contains does not allow that, but Includes does.
For example, in the body of the following definition:
foo :: (uni Includes Integer, uni Includes Bool, uni Includes []) => ...
foo = ...
you can make use of the fact that uni has lists of arbitrary included types (integers,
booleans and lists).
Hence most of the time opt for using the more flexible Includes.
Includes is defined in terms of Contains, so you only need to provide a Contains instance
per type from the universe and you'll get Includes for free.
Instances
| Contains DefaultUni ByteString Source # | |
Defined in PlutusCore.Default.Universe Methods knownUni :: DefaultUni (Esc ByteString) Source # | |
| Contains DefaultUni Element Source # | |
Defined in PlutusCore.Default.Universe | |
| Contains DefaultUni Element Source # | |
Defined in PlutusCore.Default.Universe | |
| Contains DefaultUni MlResult Source # | |
Defined in PlutusCore.Default.Universe | |
| Contains DefaultUni Data Source # | |
Defined in PlutusCore.Default.Universe | |
| Contains DefaultUni Value Source # | |
Defined in PlutusCore.Default.Universe | |
| Contains DefaultUni Text Source # | |
Defined in PlutusCore.Default.Universe | |
| Contains DefaultUni Integer Source # | |
Defined in PlutusCore.Default.Universe | |
| Contains DefaultUni () Source # | |
Defined in PlutusCore.Default.Universe Methods knownUni :: DefaultUni (Esc ()) Source # | |
| Contains DefaultUni Bool Source # | |
Defined in PlutusCore.Default.Universe | |
| (Contains DefaultUni f, Contains DefaultUni a) => Contains DefaultUni (f a :: k2) Source # | |
Defined in PlutusCore.Default.Universe Methods knownUni :: DefaultUni (Esc (f a)) Source # | |
| (Typeable k, Contains uni a) => Contains (Kinded uni) (a :: k) Source # | A |
| Contains DefaultUni (,) Source # | |
Defined in PlutusCore.Default.Universe | |
| Contains DefaultUni Vector Source # | |
Defined in PlutusCore.Default.Universe Methods knownUni :: DefaultUni (Esc Vector) Source # | |
| Contains DefaultUni [] Source # | |
Defined in PlutusCore.Default.Universe | |
| (TypeError NoStandalonePolymorphicDataErrMsg :: Constraint) => Contains uni (TyVarRep :: TyNameRep kind -> kind) Source # | |
class Closed (uni :: Type -> Type) where Source #
A universe is Closed, if it's known how to constrain every type from the universe and
every type can be encoded to / decoded from a sequence of integer tags.
The universe doesn't have to be finite and providing support for infinite universes is the
reason why we encode a type as a sequence of integer tags as opposed to a single integer tag.
For example, given
data U a where
UList :: !(U a) -> U [a]
UInt :: U IntUList (UList UInt) can be encoded to [0,0,1] where 0 and 1 are the integer tags of the
UList and UInt constructors, respectively.
Associated Types
type Everywhere (uni :: Type -> Type) (constr :: Type -> Constraint) Source #
A constrant for "constr a holds for any a from uni".
Methods
encodeUni :: uni a -> [Int] Source #
Encode a type as a sequence of Int tags.
The opposite of decodeUni.
withDecodedUni :: (forall k (a :: k). Typeable k => uni (Esc a) -> DecodeUniM r) -> DecodeUniM r Source #
Decode a type and feed it to the continuation.
bring :: Everywhere uni constr => proxy constr -> uni (Esc a) -> (constr a => r) -> r Source #
Bring a constr a instance in scope, provided a is a type from the universe and
constr holds for any type from the universe.
Instances
| Closed DefaultUni Source # | |||||
Defined in PlutusCore.Default.Universe Associated Types
Methods encodeUni :: DefaultUni a -> [Int] Source # withDecodedUni :: (forall k (a :: k). Typeable k => DefaultUni (Esc a) -> DecodeUniM r) -> DecodeUniM r Source # bring :: Everywhere DefaultUni constr => proxy constr -> DefaultUni (Esc a) -> (constr a => r) -> r Source # | |||||
type family EverywhereAll (uni :: Type -> Type) (constrs :: [Type -> Constraint]) where ... Source #
Equations
| EverywhereAll uni ('[] :: [Type -> Constraint]) = () | |
| EverywhereAll uni (constr ': constrs) = (Everywhere uni constr, EverywhereAll uni constrs) |
knownUniOf :: forall {k} uni (a :: k) proxy. Contains uni a => proxy a -> uni (Esc a) Source #
Same as knownUni, but receives a proxy.
class GShow (t :: k -> Type) where #
Methods
gshowsPrec :: forall (a :: k). Int -> t a -> ShowS #
Instances
| GShow SNat | |
Defined in Data.GADT.Internal | |
| GShow SChar | |
Defined in Data.GADT.Internal | |
| GShow SSymbol | |
Defined in Data.GADT.Internal | |
| GShow DefaultUni Source # | |
Defined in PlutusCore.Default.Universe Methods gshowsPrec :: Int -> DefaultUni a -> ShowS # | |
| GShow uni => GShow (Kinded uni :: Type -> Type) Source # | |
Defined in Universe.Core Methods gshowsPrec :: Int -> Kinded uni a -> ShowS # | |
| (GShow uni, Closed uni, Everywhere uni Show) => GShow (ValueOf uni :: Type -> Type) Source # | |
Defined in Universe.Core Methods gshowsPrec :: Int -> ValueOf uni a -> ShowS # | |
| GShow (TypeRep :: k -> Type) | |
Defined in Data.GADT.Internal Methods gshowsPrec :: forall (a :: k). Int -> TypeRep a -> ShowS # | |
| GShow ((:~:) a :: k -> Type) | |
Defined in Data.GADT.Internal Methods gshowsPrec :: forall (a0 :: k). Int -> (a :~: a0) -> ShowS # | |
| GShow (GOrdering a :: k -> Type) | |
Defined in Data.GADT.Internal Methods gshowsPrec :: forall (a0 :: k). Int -> GOrdering a a0 -> ShowS # | |
| (GShow a, GShow b) => GShow (Product a b :: k -> Type) | |
Defined in Data.GADT.Internal Methods gshowsPrec :: forall (a0 :: k). Int -> Product a b a0 -> ShowS # | |
| (GShow a, GShow b) => GShow (Sum a b :: k -> Type) | |
Defined in Data.GADT.Internal Methods gshowsPrec :: forall (a0 :: k). Int -> Sum a b a0 -> ShowS # | |
| GShow ((:~~:) a :: k -> Type) | |
Defined in Data.GADT.Internal Methods gshowsPrec :: forall (a0 :: k). Int -> (a :~~: a0) -> ShowS # | |
| (GShow a, GShow b) => GShow (a :*: b :: k -> Type) | |
Defined in Data.GADT.Internal Methods gshowsPrec :: forall (a0 :: k). Int -> (a :*: b) a0 -> ShowS # | |
| (GShow a, GShow b) => GShow (a :+: b :: k -> Type) | |
Defined in Data.GADT.Internal Methods gshowsPrec :: forall (a0 :: k). Int -> (a :+: b) a0 -> ShowS # | |
class GEq (f :: k -> Type) where #
Instances
| GEq SNat | |
| GEq SChar | |
| GEq SSymbol | |
| GEq DefaultUni Source # | |
Defined in PlutusCore.Default.Universe Methods geq :: DefaultUni a -> DefaultUni b -> Maybe (a :~: b) # | |
| (GEq uni, Closed uni, Everywhere uni Eq) => GEq (ValueOf uni :: Type -> Type) Source # | |
| GEq (TypeRep :: k -> Type) | |
| GEq ((:~:) a :: k -> Type) | |
| (GEq a, GEq b) => GEq (Product a b :: k -> Type) | |
| (GEq a, GEq b) => GEq (Sum a b :: k -> Type) | |
| GEq ((:~~:) a :: k -> Type) | |
| (GEq a, GEq b) => GEq (a :*: b :: k -> Type) | |
| (GEq f, GEq g) => GEq (f :+: g :: k -> Type) | |
class HasUniApply (uni :: Type -> Type) where Source #
A class for "uni has general type application".
Methods
uniApply :: forall k l (f :: k -> l) (a :: k). uni (Esc f) -> uni (Esc a) -> uni (Esc (f a)) Source #
Apply a type constructor to an argument.
Arguments
| :: uni tb | The type. |
| -> r | What to return if the type is not an application. |
| -> (forall k l (f :: k -> l) (a :: k). tb ~ Esc (f a) => uni (Esc f) -> uni (Esc a) -> r) | The continuation taking a function and an argument. |
| -> r |
Deconstruct a type application into the function and the argument and feed them to the continuation. If the type is not an application, then return the default value.
Instances
| HasUniApply DefaultUni Source # | |
Defined in PlutusCore.Default.Universe Methods uniApply :: forall k l (f :: k -> l) (a :: k). DefaultUni (Esc f) -> DefaultUni (Esc a) -> DefaultUni (Esc (f a)) Source # matchUniApply :: DefaultUni tb -> r -> (forall k l (f :: k -> l) (a :: k). tb ~ Esc (f a) => DefaultUni (Esc f) -> DefaultUni (Esc a) -> r) -> r Source # | |
checkStar :: forall uni a (x :: a). Typeable a => uni (Esc x) -> Maybe (a :~: Type) Source #
Check if the kind of the given type from the universe is Type.
withApplicable :: forall a ab (f :: ab) (x :: a) uni m r. (Typeable ab, Typeable a, MonadPlus m) => uni (Esc f) -> uni (Esc x) -> (forall b. (Typeable b, ab ~ (a -> b)) => m r) -> m r Source #
Check if one type from the universe can be applied to another (i.e. check that the expected
kind of the argument matches the actual one) and call the continuation in the refined context.
Fail with mzero otherwise.
data (a :: k) :~: (b :: k) where infix 4 Source #
Propositional equality. If a :~: b is inhabited by some terminating
value, then the type a is the same as the type b. To use this equality
in practice, pattern-match on the a :~: b to get out the Refl constructor;
in the body of the pattern-match, the compiler knows that a ~ b.
Since: base-4.7.0.0
Instances
| Category ((:~:) :: k -> k -> Type) | Since: base-4.7.0.0 |
| TestCoercion ((:~:) a :: k -> Type) | Since: base-4.7.0.0 |
Defined in Data.Type.Coercion | |
| TestEquality ((:~:) a :: k -> Type) | Since: base-4.7.0.0 |
Defined in Data.Type.Equality | |
| EqP ((:~:) a :: k -> Type) | |
| GNFData ((:~:) a :: k -> Type) | |
Defined in Data.GADT.DeepSeq | |
| GCompare ((:~:) a :: k -> Type) | |
Defined in Data.GADT.Internal | |
| GEq ((:~:) a :: k -> Type) | |
| GRead ((:~:) a :: k -> Type) | |
Defined in Data.GADT.Internal Methods greadsPrec :: Int -> GReadS ((:~:) a) | |
| GShow ((:~:) a :: k -> Type) | |
Defined in Data.GADT.Internal Methods gshowsPrec :: forall (a0 :: k). Int -> (a :~: a0) -> ShowS # | |
| OrdP ((:~:) a :: k -> Type) | |
| NFData2 ((:~:) :: Type -> Type -> Type) | Since: deepseq-1.4.3.0 |
Defined in Control.DeepSeq | |
| NFData1 ((:~:) a) | Since: deepseq-1.4.3.0 |
Defined in Control.DeepSeq | |
| (a ~ b, Data a) => Data (a :~: b) | Since: base-4.7.0.0 |
Defined in Data.Data Methods gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> (a :~: b) -> c (a :~: b) Source # gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (a :~: b) Source # toConstr :: (a :~: b) -> Constr Source # dataTypeOf :: (a :~: b) -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (a :~: b)) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (a :~: b)) Source # gmapT :: (forall b0. Data b0 => b0 -> b0) -> (a :~: b) -> a :~: b Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> (a :~: b) -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> (a :~: b) -> r Source # gmapQ :: (forall d. Data d => d -> u) -> (a :~: b) -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> (a :~: b) -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> (a :~: b) -> m (a :~: b) Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> (a :~: b) -> m (a :~: b) Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> (a :~: b) -> m (a :~: b) Source # | |
| a ~ b => Bounded (a :~: b) | Since: base-4.7.0.0 |
| a ~ b => Enum (a :~: b) | Since: base-4.7.0.0 |
Defined in Data.Type.Equality Methods succ :: (a :~: b) -> a :~: b Source # pred :: (a :~: b) -> a :~: b Source # toEnum :: Int -> a :~: b Source # fromEnum :: (a :~: b) -> Int Source # enumFrom :: (a :~: b) -> [a :~: b] Source # enumFromThen :: (a :~: b) -> (a :~: b) -> [a :~: b] Source # enumFromTo :: (a :~: b) -> (a :~: b) -> [a :~: b] Source # enumFromThenTo :: (a :~: b) -> (a :~: b) -> (a :~: b) -> [a :~: b] Source # | |
| a ~ b => Read (a :~: b) | Since: base-4.7.0.0 |
| Show (a :~: b) | Since: base-4.7.0.0 |
| NFData (a :~: b) | Since: deepseq-1.4.3.0 |
Defined in Control.DeepSeq | |
| Eq (a :~: b) | Since: base-4.7.0.0 |
| Ord (a :~: b) | Since: base-4.7.0.0 |
Defined in Data.Type.Equality | |
type (<:) (uni1 :: Type -> Type) (uni2 :: Type -> Type) = Everywhere uni1 (Includes uni2 :: Type -> Constraint) Source #
A constraint for "uni1 is a subuniverse of uni2".
type HasTypeLevel (uni :: Type -> Type) (x :: a) = KnownTypeAst Void uni (ElaborateBuiltin uni x) Source #
Specifies that the given type is a built-in one and can be embedded into a Type.
type HasTermLevel (uni :: Type -> Type) = Includes uni :: a -> Constraint Source #
Specifies that the given type is a built-in one and its values can be embedded into a Term.
type HasTypeAndTermLevel (uni :: Type -> Type) (x :: a) = (HasTypeLevel uni x, HasTermLevel uni x) Source #
The product of HasTypeLevel and HasTermLevel.
data DefaultUni a where Source #
The universe used by default.
Constructors
| DefaultUniInteger :: DefaultUni (Esc Integer) | |
| DefaultUniByteString :: DefaultUni (Esc ByteString) | |
| DefaultUniString :: DefaultUni (Esc Text) | |
| DefaultUniUnit :: DefaultUni (Esc ()) | |
| DefaultUniBool :: DefaultUni (Esc Bool) | |
| DefaultUniProtoArray :: DefaultUni (Esc Vector) | |
| DefaultUniProtoList :: DefaultUni (Esc []) | |
| DefaultUniProtoPair :: DefaultUni (Esc (,)) | |
| DefaultUniApply :: forall {k1} {k2} (f :: k1 -> k2) (a1 :: k1). !(DefaultUni (Esc f)) -> !(DefaultUni (Esc a1)) -> DefaultUni (Esc (f a1)) | |
| DefaultUniData :: DefaultUni (Esc Data) | |
| DefaultUniBLS12_381_G1_Element :: DefaultUni (Esc Element) | |
| DefaultUniBLS12_381_G2_Element :: DefaultUni (Esc Element) | |
| DefaultUniBLS12_381_MlResult :: DefaultUni (Esc MlResult) | |
| DefaultUniValue :: DefaultUni (Esc Value) |
Instances
| AnnotateCaseBuiltin DefaultUni Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods annotateCaseBuiltin :: UniOf term ~ DefaultUni => Type TyName DefaultUni ann -> [term] -> Either Text [(term, [Type TyName DefaultUni ann])] Source # | |||||||||||||
| CaseBuiltin DefaultUni Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods caseBuiltin :: UniOf term ~ DefaultUni => Some (ValueOf DefaultUni) -> Vector term -> HeadSpine Text term (Some (ValueOf DefaultUni)) Source # | |||||||||||||
| ToKind DefaultUni Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods toSingKind :: forall k (a :: k). DefaultUni (Esc a) -> SingKind k Source # | |||||||||||||
| TestTypesFromTheUniverseAreAllKnown DefaultUni Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| Closed DefaultUni Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods encodeUni :: DefaultUni a -> [Int] Source # withDecodedUni :: (forall k (a :: k). Typeable k => DefaultUni (Esc a) -> DecodeUniM r) -> DecodeUniM r Source # bring :: Everywhere DefaultUni constr => proxy constr -> DefaultUni (Esc a) -> (constr a => r) -> r Source # | |||||||||||||
| HasUniApply DefaultUni Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods uniApply :: forall k l (f :: k -> l) (a :: k). DefaultUni (Esc f) -> DefaultUni (Esc a) -> DefaultUni (Esc (f a)) Source # matchUniApply :: DefaultUni tb -> r -> (forall k l (f :: k -> l) (a :: k). tb ~ Esc (f a) => DefaultUni (Esc f) -> DefaultUni (Esc a) -> r) -> r Source # | |||||||||||||
| AllBuiltinArgs DefaultUni (GEqL DefaultUni) a => GEqL DefaultUni a Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods geqL :: DefaultUni (Esc a) -> DefaultUni (Esc b) -> EvaluationResult (a :~: b) Source # | |||||||||||||
| GEq DefaultUni Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods geq :: DefaultUni a -> DefaultUni b -> Maybe (a :~: b) # | |||||||||||||
| GShow DefaultUni Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods gshowsPrec :: Int -> DefaultUni a -> ShowS # | |||||||||||||
| UniOf term ~ DefaultUni => MakeKnownIn DefaultUni term Void Source # | |||||||||||||
Defined in PlutusCore.Examples.Builtins Methods makeKnown :: Void -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term Int16 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Int16 -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term Int32 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Int32 -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term Int64 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Int64 -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term Int8 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Int8 -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term Word16 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Word16 -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term Word32 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Word32 -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term Word64 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Word64 -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term Word8 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Word8 -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term ByteString => MakeKnownIn DefaultUni term ByteString Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: ByteString -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Element => MakeKnownIn DefaultUni term Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Element -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Element => MakeKnownIn DefaultUni term Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Element -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term MlResult => MakeKnownIn DefaultUni term MlResult Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: MlResult -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Data => MakeKnownIn DefaultUni term Data Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Data -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Value => MakeKnownIn DefaultUni term DataNodeCount Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: DataNodeCount -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term IntegerCostedLiterally Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: IntegerCostedLiterally -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term NumBytesCostedAsNumWords Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: NumBytesCostedAsNumWords -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Value => MakeKnownIn DefaultUni term ValueMaxDepth Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: ValueMaxDepth -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Value => MakeKnownIn DefaultUni term ValueTotalSize Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: ValueTotalSize -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Value => MakeKnownIn DefaultUni term Value Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Value -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Text => MakeKnownIn DefaultUni term Text Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Text -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term Integer Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Integer -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term Natural Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Natural -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term () => MakeKnownIn DefaultUni term () Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: () -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Bool => MakeKnownIn DefaultUni term Bool Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Bool -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term Int Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Int -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => MakeKnownIn DefaultUni term Word Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Word -> BuiltinResult term Source # | |||||||||||||
| UniOf term ~ DefaultUni => ReadKnownIn DefaultUni term Void Source # | |||||||||||||
Defined in PlutusCore.Examples.Builtins Methods readKnown :: term -> ReadKnownM Void Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term Int16 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Int16 Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term Int32 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Int32 Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term Int64 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Int64 Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term Int8 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Int8 Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term Word16 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Word16 Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term Word32 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Word32 Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term Word64 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Word64 Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term Word8 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Word8 Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term ByteString => ReadKnownIn DefaultUni term ByteString Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM ByteString Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Element => ReadKnownIn DefaultUni term Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Element Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Element => ReadKnownIn DefaultUni term Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Element Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term MlResult => ReadKnownIn DefaultUni term MlResult Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM MlResult Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Data => ReadKnownIn DefaultUni term Data Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Data Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Value => ReadKnownIn DefaultUni term DataNodeCount Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM DataNodeCount Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term IntegerCostedLiterally Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM IntegerCostedLiterally Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term NumBytesCostedAsNumWords Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM NumBytesCostedAsNumWords Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Value => ReadKnownIn DefaultUni term ValueMaxDepth Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM ValueMaxDepth Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Value => ReadKnownIn DefaultUni term ValueTotalSize Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM ValueTotalSize Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Value => ReadKnownIn DefaultUni term Value Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Value Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Text => ReadKnownIn DefaultUni term Text Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Text Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term Integer Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Integer Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term Natural Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Natural Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term () => ReadKnownIn DefaultUni term () Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM () Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Bool => ReadKnownIn DefaultUni term Bool Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Bool Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term Int Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Int Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term Integer => ReadKnownIn DefaultUni term Word Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM Word Source # | |||||||||||||
| Contains DefaultUni ByteString Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods knownUni :: DefaultUni (Esc ByteString) Source # | |||||||||||||
| Contains DefaultUni Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| Contains DefaultUni Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| Contains DefaultUni MlResult Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| Contains DefaultUni Data Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| Contains DefaultUni Value Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| Contains DefaultUni Text Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| Contains DefaultUni Integer Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| Contains DefaultUni () Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods knownUni :: DefaultUni (Esc ()) Source # | |||||||||||||
| Contains DefaultUni Bool Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| tyname ~ TyName => KnownTypeAst tyname DefaultUni Void Source # | |||||||||||||
Defined in PlutusCore.Examples.Builtins Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni Int16 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni Int32 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni Int64 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni Int8 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni Word16 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni Word32 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni Word64 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni Word8 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeAst tyname DefaultUni ByteString => KnownTypeAst tyname DefaultUni ByteString Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeAst tyname DefaultUni Element => KnownTypeAst tyname DefaultUni Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeAst tyname DefaultUni Element => KnownTypeAst tyname DefaultUni Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeAst tyname DefaultUni MlResult => KnownTypeAst tyname DefaultUni MlResult Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeAst tyname DefaultUni Data => KnownTypeAst tyname DefaultUni Data Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni DataNodeCount Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni IntegerCostedLiterally Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni NumBytesCostedAsNumWords Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni ValueMaxDepth Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni ValueTotalSize Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeAst tyname DefaultUni Value => KnownTypeAst tyname DefaultUni Value Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeAst tyname DefaultUni Text => KnownTypeAst tyname DefaultUni Text Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeAst tyname DefaultUni Integer => KnownTypeAst tyname DefaultUni Integer Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni Natural Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeAst tyname DefaultUni () => KnownTypeAst tyname DefaultUni () Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeAst tyname DefaultUni Bool => KnownTypeAst tyname DefaultUni Bool Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni Int Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownTypeAst tyname DefaultUni Word Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeAst tyname DefaultUni (Vector a) => KnownTypeAst tyname DefaultUni (Vector a :: Type) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeAst tyname DefaultUni [a] => KnownTypeAst tyname DefaultUni ([a] :: Type) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeAst tyname DefaultUni (a, b) => KnownTypeAst tyname DefaultUni ((a, b) :: Type) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Associated Types
Methods typeAst :: Type tyname DefaultUni () Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term (Vector a) => MakeKnownIn DefaultUni term (Vector a) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: Vector a -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term [a] => MakeKnownIn DefaultUni term [a] Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: [a] -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term (Vector a) => ReadKnownIn DefaultUni term (Vector a) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM (Vector a) Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term [a] => ReadKnownIn DefaultUni term [a] Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM [a] Source # | |||||||||||||
| (Contains DefaultUni f, Contains DefaultUni a) => Contains DefaultUni (f a :: k2) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods knownUni :: DefaultUni (Esc (f a)) Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term (a, b) => MakeKnownIn DefaultUni term (a, b) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods makeKnown :: (a, b) -> BuiltinResult term Source # | |||||||||||||
| KnownBuiltinTypeIn DefaultUni term (a, b) => ReadKnownIn DefaultUni term (a, b) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods readKnown :: term -> ReadKnownM (a, b) Source # | |||||||||||||
| MakeKnownIn DefaultUni term a => MakeKnownIn DefaultUni term (MetaForall name a) Source # | |||||||||||||
Defined in PlutusCore.Examples.Builtins Methods makeKnown :: MetaForall name a -> BuiltinResult term Source # | |||||||||||||
| PrettyBy RenderContext (DefaultUni a) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods prettyBy :: RenderContext -> DefaultUni a -> Doc ann # prettyListBy :: RenderContext -> [DefaultUni a] -> Doc ann # | |||||||||||||
| PrettyBy RenderContext (SomeTypeIn DefaultUni) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods prettyBy :: RenderContext -> SomeTypeIn DefaultUni -> Doc ann # prettyListBy :: RenderContext -> [SomeTypeIn DefaultUni] -> Doc ann # | |||||||||||||
| Show (DefaultUni a) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| Pretty (DefaultUni a) Source # | This always pretty-prints parens around type applications (e.g. | ||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| Pretty (SomeTypeIn DefaultUni) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods pretty :: SomeTypeIn DefaultUni -> Doc ann # prettyList :: [SomeTypeIn DefaultUni] -> Doc ann # | |||||||||||||
| Contains DefaultUni (,) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| Contains DefaultUni Vector Source # | |||||||||||||
Defined in PlutusCore.Default.Universe Methods knownUni :: DefaultUni (Esc Vector) Source # | |||||||||||||
| Contains DefaultUni [] Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type Everywhere DefaultUni constr Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type Everywhere DefaultUni constr = (Permits constr Integer, Permits constr ByteString, Permits constr Text, Permits constr (), Permits constr Bool, Permits constr Value, Permits constr [], Permits constr Vector, Permits constr (,), Permits constr Data, Permits constr Element, Permits constr Element, Permits constr MlResult) | |||||||||||||
| type IsBuiltin DefaultUni Void Source # | |||||||||||||
Defined in PlutusCore.Examples.Builtins | |||||||||||||
| type IsBuiltin DefaultUni Int16 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Int32 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Int64 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Int8 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Word16 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Word32 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Word64 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Word8 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni ByteString Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni MlResult Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Data Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni DataNodeCount Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni IntegerCostedLiterally Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni NumBytesCostedAsNumWords Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni ValueMaxDepth Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni ValueTotalSize Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Value Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Text Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Integer Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Natural Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni () Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Bool Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Int Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni Word Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ElaborateBuiltin DefaultUni (x :: a) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Void Source # | |||||||||||||
Defined in PlutusCore.Examples.Builtins | |||||||||||||
| type ToBinds DefaultUni acc Int16 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Int32 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Int64 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Int8 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Word16 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Word32 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Word64 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Word8 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc ByteString Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type ToBinds DefaultUni acc ByteString = ToBinds DefaultUni acc (ElaborateBuiltin DefaultUni ByteString) | |||||||||||||
| type ToBinds DefaultUni acc Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc MlResult Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type ToBinds DefaultUni acc MlResult = ToBinds DefaultUni acc (ElaborateBuiltin DefaultUni MlResult) | |||||||||||||
| type ToBinds DefaultUni acc Data Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc DataNodeCount Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc IntegerCostedLiterally Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc NumBytesCostedAsNumWords Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc ValueMaxDepth Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc ValueTotalSize Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Value Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Text Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Integer Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Natural Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc () Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Bool Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Int Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc Word Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni _1 Void Source # | |||||||||||||
Defined in PlutusCore.Examples.Builtins | |||||||||||||
| type ToHoles DefaultUni hole Int16 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole Int32 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole Int64 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole Int8 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole Word16 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole Word32 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole Word64 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole Word8 Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole ByteString Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type ToHoles DefaultUni hole ByteString = ToHoles DefaultUni hole (ElaborateBuiltin DefaultUni ByteString) | |||||||||||||
| type ToHoles DefaultUni hole Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type ToHoles DefaultUni hole Element = ToHoles DefaultUni hole (ElaborateBuiltin DefaultUni Element) | |||||||||||||
| type ToHoles DefaultUni hole Element Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type ToHoles DefaultUni hole Element = ToHoles DefaultUni hole (ElaborateBuiltin DefaultUni Element) | |||||||||||||
| type ToHoles DefaultUni hole MlResult Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type ToHoles DefaultUni hole MlResult = ToHoles DefaultUni hole (ElaborateBuiltin DefaultUni MlResult) | |||||||||||||
| type ToHoles DefaultUni hole Data Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole DataNodeCount Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole IntegerCostedLiterally Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole NumBytesCostedAsNumWords Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole ValueMaxDepth Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole ValueTotalSize Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole Value Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole Text Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole Integer Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type ToHoles DefaultUni hole Integer = ToHoles DefaultUni hole (ElaborateBuiltin DefaultUni Integer) | |||||||||||||
| type ToHoles DefaultUni hole Natural Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole () Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole Bool Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole Int Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToHoles DefaultUni hole Word Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type ToBinds DefaultUni acc (Vector a :: Type) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type ToBinds DefaultUni acc (Vector a :: Type) = ToBinds DefaultUni acc (ElaborateBuiltin DefaultUni (Vector a)) | |||||||||||||
| type ToBinds DefaultUni acc ([a] :: Type) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type ToBinds DefaultUni acc ([a] :: Type) = ToBinds DefaultUni acc (ElaborateBuiltin DefaultUni [a]) | |||||||||||||
| type ToHoles DefaultUni hole (Vector a :: Type) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type ToHoles DefaultUni hole (Vector a :: Type) = ToHoles DefaultUni hole (ElaborateBuiltin DefaultUni (Vector a)) | |||||||||||||
| type ToHoles DefaultUni hole ([a] :: Type) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type ToHoles DefaultUni hole ([a] :: Type) = ToHoles DefaultUni hole (ElaborateBuiltin DefaultUni [a]) | |||||||||||||
| type ToBinds DefaultUni acc ((a, b) :: Type) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type ToBinds DefaultUni acc ((a, b) :: Type) = ToBinds DefaultUni acc (ElaborateBuiltin DefaultUni (a, b)) | |||||||||||||
| type ToHoles DefaultUni hole ((a, b) :: Type) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type ToHoles DefaultUni hole ((a, b) :: Type) = ToHoles DefaultUni hole (ElaborateBuiltin DefaultUni (a, b)) | |||||||||||||
| type IsBuiltin DefaultUni (Vector a :: Type) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type IsBuiltin DefaultUni (Vector a :: Type) = IsBuiltin DefaultUni (ElaborateBuiltin DefaultUni (Vector a)) | |||||||||||||
| type IsBuiltin DefaultUni ([a] :: Type) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe | |||||||||||||
| type IsBuiltin DefaultUni ((a, b) :: Type) Source # | |||||||||||||
Defined in PlutusCore.Default.Universe type IsBuiltin DefaultUni ((a, b) :: Type) = IsBuiltin DefaultUni (ElaborateBuiltin DefaultUni (a, b)) | |||||||||||||
pattern DefaultUniList :: forall {a} {k1} {k2} {f :: k1 -> k2} {a1 :: k1}. () => forall. (a ~ Esc (f a1), Esc f ~ Esc []) => DefaultUni (Esc a1) -> DefaultUni a Source #
pattern DefaultUniPair :: forall {a} {k1} {k2} {f1 :: k1 -> k2} {a1 :: k1} {k3} {k4} {f2 :: k3 -> k4} {a2 :: k3}. () => forall. (a ~ Esc (f1 a1), Esc f1 ~ Esc (f2 a2), Esc f2 ~ Esc (,)) => DefaultUni (Esc a2) -> DefaultUni (Esc a1) -> DefaultUni a Source #
pattern DefaultUniArray :: forall {a} {k1} {k2} {f :: k1 -> k2} {a1 :: k1}. () => forall. (a ~ Esc (f a1), Esc f ~ Esc Vector) => DefaultUni (Esc a1) -> DefaultUni a Source #
data DefaultFun Source #
Default built-in functions.
When updating these, make sure to add them to the protocol version listing! See Note [New builtins/language versions and protocol versions]
Constructors
| AddInteger | |
| SubtractInteger | |
| MultiplyInteger | |
| DivideInteger | |
| QuotientInteger | |
| RemainderInteger | |
| ModInteger | |
| EqualsInteger | |
| LessThanInteger | |
| LessThanEqualsInteger | |
| AppendByteString | |
| ConsByteString | |
| SliceByteString | |
| LengthOfByteString | |
| IndexByteString | |
| EqualsByteString | |
| LessThanByteString | |
| LessThanEqualsByteString | |
| Sha2_256 | |
| Sha3_256 | |
| Blake2b_256 | |
| VerifyEd25519Signature | |
| VerifyEcdsaSecp256k1Signature | |
| VerifySchnorrSecp256k1Signature | |
| AppendString | |
| EqualsString | |
| EncodeUtf8 | |
| DecodeUtf8 | |
| IfThenElse | |
| ChooseUnit | |
| Trace | |
| FstPair | |
| SndPair | |
| ChooseList | |
| MkCons | |
| HeadList | |
| TailList | |
| NullList | |
| ChooseData | |
| ConstrData | |
| MapData | |
| ListData | |
| IData | |
| BData | |
| UnConstrData | |
| UnMapData | |
| UnListData | |
| UnIData | |
| UnBData | |
| EqualsData | |
| SerialiseData | |
| MkPairData | |
| MkNilData | |
| MkNilPairData | |
| Bls12_381_G1_add | |
| Bls12_381_G1_neg | |
| Bls12_381_G1_scalarMul | |
| Bls12_381_G1_equal | |
| Bls12_381_G1_hashToGroup | |
| Bls12_381_G1_compress | |
| Bls12_381_G1_uncompress | |
| Bls12_381_G2_add | |
| Bls12_381_G2_neg | |
| Bls12_381_G2_scalarMul | |
| Bls12_381_G2_equal | |
| Bls12_381_G2_hashToGroup | |
| Bls12_381_G2_compress | |
| Bls12_381_G2_uncompress | |
| Bls12_381_millerLoop | |
| Bls12_381_mulMlResult | |
| Bls12_381_finalVerify | |
| Keccak_256 | |
| Blake2b_224 | |
| IntegerToByteString | |
| ByteStringToInteger | |
| AndByteString | |
| OrByteString | |
| XorByteString | |
| ComplementByteString | |
| ReadBit | |
| WriteBits | |
| ReplicateByte | |
| ShiftByteString | |
| RotateByteString | |
| CountSetBits | |
| FindFirstSetBit | |
| Ripemd_160 | |
| ExpModInteger | |
| DropList | |
| LengthOfArray | |
| ListToArray | |
| IndexArray | |
| Bls12_381_G1_multiScalarMul | |
| Bls12_381_G2_multiScalarMul | |
| InsertCoin | |
| LookupCoin | |
| UnionValue | |
| ValueContains | |
| ValueData | |
| UnValueData | |
| ScaleValue |
Instances
| Bounded DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins | |||||||||
| Enum DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods succ :: DefaultFun -> DefaultFun Source # pred :: DefaultFun -> DefaultFun Source # toEnum :: Int -> DefaultFun Source # fromEnum :: DefaultFun -> Int Source # enumFrom :: DefaultFun -> [DefaultFun] Source # enumFromThen :: DefaultFun -> DefaultFun -> [DefaultFun] Source # enumFromTo :: DefaultFun -> DefaultFun -> [DefaultFun] Source # enumFromThenTo :: DefaultFun -> DefaultFun -> DefaultFun -> [DefaultFun] Source # | |||||||||
| Generic DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins Associated Types
| |||||||||
| Ix DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods range :: (DefaultFun, DefaultFun) -> [DefaultFun] Source # index :: (DefaultFun, DefaultFun) -> DefaultFun -> Int Source # unsafeIndex :: (DefaultFun, DefaultFun) -> DefaultFun -> Int Source # inRange :: (DefaultFun, DefaultFun) -> DefaultFun -> Bool Source # rangeSize :: (DefaultFun, DefaultFun) -> Int Source # unsafeRangeSize :: (DefaultFun, DefaultFun) -> Int Source # | |||||||||
| Show DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins | |||||||||
| NFData DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods rnf :: DefaultFun -> () Source # | |||||||||
| Eq DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods (==) :: DefaultFun -> DefaultFun -> Bool Source # (/=) :: DefaultFun -> DefaultFun -> Bool Source # | |||||||||
| Ord DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods compare :: DefaultFun -> DefaultFun -> Ordering Source # (<) :: DefaultFun -> DefaultFun -> Bool Source # (<=) :: DefaultFun -> DefaultFun -> Bool Source # (>) :: DefaultFun -> DefaultFun -> Bool Source # (>=) :: DefaultFun -> DefaultFun -> Bool Source # max :: DefaultFun -> DefaultFun -> DefaultFun Source # min :: DefaultFun -> DefaultFun -> DefaultFun Source # | |||||||||
| Hashable DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins | |||||||||
| Flat DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods encode :: DefaultFun -> Encoding decode :: Get DefaultFun size :: DefaultFun -> NumBits -> NumBits | |||||||||
| ExMemoryUsage DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods memoryUsage :: DefaultFun -> CostRose Source # | |||||||||
| Pretty DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins | |||||||||
| uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins Associated Types
Methods toBuiltinMeaning :: HasMeaningIn uni val => BuiltinSemanticsVariant DefaultFun -> DefaultFun -> BuiltinMeaning val (CostingPart uni DefaultFun) Source # | |||||||||
| PrettyBy PrettyConfigPlc DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods prettyBy :: PrettyConfigPlc -> DefaultFun -> Doc ann # prettyListBy :: PrettyConfigPlc -> [DefaultFun] -> Doc ann # | |||||||||
| Bounded (BuiltinSemanticsVariant DefaultFun) Source # | |||||||||
Defined in PlutusCore.Default.Builtins | |||||||||
| Enum (BuiltinSemanticsVariant DefaultFun) Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods succ :: BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun Source # pred :: BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun Source # toEnum :: Int -> BuiltinSemanticsVariant DefaultFun Source # fromEnum :: BuiltinSemanticsVariant DefaultFun -> Int Source # enumFrom :: BuiltinSemanticsVariant DefaultFun -> [BuiltinSemanticsVariant DefaultFun] Source # enumFromThen :: BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun -> [BuiltinSemanticsVariant DefaultFun] Source # enumFromTo :: BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun -> [BuiltinSemanticsVariant DefaultFun] Source # enumFromThenTo :: BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun -> [BuiltinSemanticsVariant DefaultFun] Source # | |||||||||
| Generic (BuiltinSemanticsVariant DefaultFun) Source # | |||||||||
Defined in PlutusCore.Default.Builtins Associated Types
Methods from :: BuiltinSemanticsVariant DefaultFun -> Rep (BuiltinSemanticsVariant DefaultFun) x Source # to :: Rep (BuiltinSemanticsVariant DefaultFun) x -> BuiltinSemanticsVariant DefaultFun Source # | |||||||||
| Show (BuiltinSemanticsVariant DefaultFun) Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods showsPrec :: Int -> BuiltinSemanticsVariant DefaultFun -> ShowS Source # show :: BuiltinSemanticsVariant DefaultFun -> String Source # showList :: [BuiltinSemanticsVariant DefaultFun] -> ShowS Source # | |||||||||
| Default (BuiltinSemanticsVariant DefaultFun) Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods | |||||||||
| NFData (BuiltinSemanticsVariant DefaultFun) Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods rnf :: BuiltinSemanticsVariant DefaultFun -> () Source # | |||||||||
| Eq (BuiltinSemanticsVariant DefaultFun) Source # | |||||||||
Defined in PlutusCore.Default.Builtins | |||||||||
| Ord (BuiltinSemanticsVariant DefaultFun) Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods compare :: BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun -> Ordering Source # (<) :: BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun -> Bool Source # (<=) :: BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun -> Bool Source # (>) :: BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun -> Bool Source # (>=) :: BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun -> Bool Source # max :: BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun Source # min :: BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun -> BuiltinSemanticsVariant DefaultFun Source # | |||||||||
| NoThunks (BuiltinSemanticsVariant DefaultFun) Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods noThunks :: Context -> BuiltinSemanticsVariant DefaultFun -> IO (Maybe ThunkInfo) wNoThunks :: Context -> BuiltinSemanticsVariant DefaultFun -> IO (Maybe ThunkInfo) showTypeOf :: Proxy (BuiltinSemanticsVariant DefaultFun) -> String | |||||||||
| Pretty (BuiltinSemanticsVariant DefaultFun) Source # | |||||||||
Defined in PlutusCore.Default.Builtins Methods pretty :: BuiltinSemanticsVariant DefaultFun -> Doc ann # prettyList :: [BuiltinSemanticsVariant DefaultFun] -> Doc ann # | |||||||||
| type Rep DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins type Rep DefaultFun = D1 ('MetaData "DefaultFun" "PlutusCore.Default.Builtins" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) ((((((C1 ('MetaCons "AddInteger" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SubtractInteger" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MultiplyInteger" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "DivideInteger" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "QuotientInteger" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RemainderInteger" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ModInteger" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "EqualsInteger" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LessThanInteger" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "LessThanEqualsInteger" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "AppendByteString" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConsByteString" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "SliceByteString" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LengthOfByteString" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IndexByteString" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "EqualsByteString" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LessThanByteString" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LessThanEqualsByteString" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Sha2_256" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Sha3_256" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Blake2b_256" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "VerifyEd25519Signature" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VerifyEcdsaSecp256k1Signature" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "VerifySchnorrSecp256k1Signature" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AppendString" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "EqualsString" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "EncodeUtf8" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DecodeUtf8" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "IfThenElse" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ChooseUnit" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Trace" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "FstPair" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SndPair" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ChooseList" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "MkCons" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "HeadList" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TailList" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "NullList" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ChooseData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConstrData" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "MapData" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ListData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IData" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "BData" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "UnConstrData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UnMapData" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "UnListData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UnIData" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "UnBData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EqualsData" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "SerialiseData" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MkPairData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MkNilData" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "MkNilPairData" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Bls12_381_G1_add" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Bls12_381_G1_neg" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Bls12_381_G1_scalarMul" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Bls12_381_G1_equal" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Bls12_381_G1_hashToGroup" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "Bls12_381_G1_compress" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Bls12_381_G1_uncompress" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Bls12_381_G2_add" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "Bls12_381_G2_neg" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Bls12_381_G2_scalarMul" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Bls12_381_G2_equal" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "Bls12_381_G2_hashToGroup" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Bls12_381_G2_compress" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Bls12_381_G2_uncompress" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Bls12_381_millerLoop" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Bls12_381_mulMlResult" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Bls12_381_finalVerify" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Keccak_256" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Blake2b_224" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "IntegerToByteString" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ByteStringToInteger" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "AndByteString" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OrByteString" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "XorByteString" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "ComplementByteString" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ReadBit" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "WriteBits" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ReplicateByte" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ShiftByteString" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RotateByteString" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CountSetBits" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FindFirstSetBit" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Ripemd_160" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExpModInteger" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "DropList" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LengthOfArray" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ListToArray" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "IndexArray" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Bls12_381_G1_multiScalarMul" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Bls12_381_G2_multiScalarMul" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "InsertCoin" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LookupCoin" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UnionValue" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ValueContains" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ValueData" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "UnValueData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ScaleValue" 'PrefixI 'False) (U1 :: Type -> Type)))))))) | |||||||||
| data BuiltinSemanticsVariant DefaultFun Source # | |||||||||
| type CostingPart uni DefaultFun Source # | |||||||||
Defined in PlutusCore.Default.Builtins | |||||||||
| type Rep (BuiltinSemanticsVariant DefaultFun) Source # | |||||||||
Defined in PlutusCore.Default.Builtins type Rep (BuiltinSemanticsVariant DefaultFun) = D1 ('MetaData "BuiltinSemanticsVariant" "PlutusCore.Default.Builtins" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) ((C1 ('MetaCons "DefaultFunSemanticsVariantA" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DefaultFunSemanticsVariantB" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DefaultFunSemanticsVariantC" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DefaultFunSemanticsVariantD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DefaultFunSemanticsVariantE" 'PrefixI 'False) (U1 :: Type -> Type)))) | |||||||||
AST
data Term tyname name (uni :: Type -> Type) fun ann Source #
Constructors
| Var ann name | a named variable |
| LamAbs ann name (Type tyname uni ann) (Term tyname name uni fun ann) | lambda abstraction |
| Apply ann (Term tyname name uni fun ann) (Term tyname name uni fun ann) | application |
| TyAbs ann tyname (Kind ann) (Term tyname name uni fun ann) | type abstraction |
| TyInst ann (Term tyname name uni fun ann) (Type tyname uni ann) | instantiation |
| IWrap ann (Type tyname uni ann) (Type tyname uni ann) (Term tyname name uni fun ann) | wrapping |
| Unwrap ann (Term tyname name uni fun ann) | unwrapping See Note [Constr tag type] |
| Constr ann (Type tyname uni ann) Word64 [Term tyname name uni fun ann] | constructor |
| Case ann (Type tyname uni ann) (Term tyname name uni fun ann) [Term tyname name uni fun ann] | case |
| Constant ann (Some (ValueOf uni)) | constants |
| Builtin ann fun | builtin functions |
| Error ann (Type tyname uni ann) | fail with error |
Instances
| name ~ Name => Reference Name (Term tyname name uni fun) Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping Methods referenceVia :: (forall name0. ToScopedName name0 => name0 -> NameAnn) -> Name -> Term tyname name uni fun NameAnn -> Term tyname name uni fun NameAnn Source # | |||||
| tyname ~ TyName => Reference TyName (Term tyname name uni fun) Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping Methods referenceVia :: (forall name0. ToScopedName name0 => name0 -> NameAnn) -> TyName -> Term tyname name uni fun NameAnn -> Term tyname name uni fun NameAnn Source # | |||||
| DefaultPrettyPlcStrategy (Term tyname name uni fun ann) => PrettyBy PrettyConfigPlc (Term tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Plc Methods prettyBy :: PrettyConfigPlc -> Term tyname name uni fun ann -> Doc ann0 # prettyListBy :: PrettyConfigPlc -> [Term tyname name uni fun ann] -> Doc ann0 # | |||||
| (PrettyClassicBy configName tyname, PrettyClassicBy configName name, PrettyUni uni, Pretty fun, Pretty ann) => PrettyBy (PrettyConfigClassic configName) (Term tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Classic Methods prettyBy :: PrettyConfigClassic configName -> Term tyname name uni fun ann -> Doc ann0 # prettyListBy :: PrettyConfigClassic configName -> [Term tyname name uni fun ann] -> Doc ann0 # | |||||
| (PrettyReadableBy configName tyname, PrettyReadableBy configName name, PrettyUni uni, Pretty fun) => PrettyBy (PrettyConfigReadable configName) (Term tyname name uni fun a) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Readable Methods prettyBy :: PrettyConfigReadable configName -> Term tyname name uni fun a -> Doc ann # prettyListBy :: PrettyConfigReadable configName -> [Term tyname name uni fun a] -> Doc ann # | |||||
| Functor (Term tyname name uni fun) Source # | |||||
| (tyname ~ TyName, name ~ Name) => CollectScopeInfo (Term tyname name uni fun) Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping Methods collectScopeInfo :: Term tyname name uni fun NameAnn -> ScopeErrorOrInfo Source # | |||||
| (tyname ~ TyName, name ~ Name) => EstablishScoping (Term tyname name uni fun) Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping | |||||
| TermLike (Term tyname name uni fun) tyname name uni fun Source # | |||||
Defined in PlutusCore.MkPlc Methods var :: ann -> name -> Term tyname name uni fun ann Source # tyAbs :: ann -> tyname -> Kind ann -> Term tyname name uni fun ann -> Term tyname name uni fun ann Source # lamAbs :: ann -> name -> Type tyname uni ann -> Term tyname name uni fun ann -> Term tyname name uni fun ann Source # apply :: ann -> Term tyname name uni fun ann -> Term tyname name uni fun ann -> Term tyname name uni fun ann Source # constant :: ann -> Some (ValueOf uni) -> Term tyname name uni fun ann Source # builtin :: ann -> fun -> Term tyname name uni fun ann Source # tyInst :: ann -> Term tyname name uni fun ann -> Type tyname uni ann -> Term tyname name uni fun ann Source # unwrap :: ann -> Term tyname name uni fun ann -> Term tyname name uni fun ann Source # iWrap :: ann -> Type tyname uni ann -> Type tyname uni ann -> Term tyname name uni fun ann -> Term tyname name uni fun ann Source # error :: ann -> Type tyname uni ann -> Term tyname name uni fun ann Source # constr :: ann -> Type tyname uni ann -> Word64 -> [Term tyname name uni fun ann] -> Term tyname name uni fun ann Source # kase :: ann -> Type tyname uni ann -> Term tyname name uni fun ann -> [Term tyname name uni fun ann] -> Term tyname name uni fun ann Source # termLet :: ann -> TermDef (Term tyname name uni fun) tyname name uni ann -> Term tyname name uni fun ann -> Term tyname name uni fun ann Source # typeLet :: ann -> TypeDef tyname uni ann -> Term tyname name uni fun ann -> Term tyname name uni fun ann Source # | |||||
| Generic (Term tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Type Associated Types
| |||||
| (Show tyname, Show name, GShow uni, Everywhere uni Show, Show fun, Show ann, Closed uni) => Show (Term tyname name uni fun ann) Source # | |||||
| (NFData tyname, NFData name, NFData fun, NFData ann, Everywhere uni NFData, Closed uni) => NFData (Term tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Type | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (Term NamedTyDeBruijn NamedDeBruijn uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Eq Methods (==) :: Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> Bool Source # (/=) :: Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> Bool Source # | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (Term TyDeBruijn DeBruijn uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Eq Methods (==) :: Term TyDeBruijn DeBruijn uni fun ann -> Term TyDeBruijn DeBruijn uni fun ann -> Bool Source # (/=) :: Term TyDeBruijn DeBruijn uni fun ann -> Term TyDeBruijn DeBruijn uni fun ann -> Bool Source # | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (Term TyName Name uni fun ann) Source # | |||||
| (Closed uni, Everywhere uni Flat, Flat fun, Flat ann, Flat tyname, Flat name) => Flat (Term tyname name uni fun ann) | |||||
| HasConstant (Term TyName Name uni fun ()) Source # | |||||
| ExMemoryUsage (Term tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Type Methods memoryUsage :: Term tyname name uni fun ann -> CostRose Source # | |||||
| HasUniques (Term tyname name uni fun ann) => Rename (Term tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Rename | |||||
| (PrettyClassic tyname, PrettyClassic name, PrettyUni uni, Pretty fun, Pretty ann) => Pretty (Term tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Default | |||||
| type Rep (Term tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Type type Rep (Term tyname name uni fun ann) = D1 ('MetaData "Term" "PlutusCore.Core.Type" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (((C1 ('MetaCons "Var" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 name)) :+: (C1 ('MetaCons "LamAbs" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 name)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term tyname name uni fun ann)))) :+: C1 ('MetaCons "Apply" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term tyname name uni fun ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term tyname name uni fun ann)))))) :+: (C1 ('MetaCons "TyAbs" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 tyname)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Kind ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term tyname name uni fun ann)))) :+: (C1 ('MetaCons "TyInst" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term tyname name uni fun ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann)))) :+: C1 ('MetaCons "IWrap" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term tyname name uni fun ann))))))) :+: ((C1 ('MetaCons "Unwrap" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term tyname name uni fun ann))) :+: (C1 ('MetaCons "Constr" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Term tyname name uni fun ann]))) :+: C1 ('MetaCons "Case" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term tyname name uni fun ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Term tyname name uni fun ann]))))) :+: (C1 ('MetaCons "Constant" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Some (ValueOf uni)))) :+: (C1 ('MetaCons "Builtin" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 fun)) :+: C1 ('MetaCons "Error" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann))))))) | |||||
| type HasUniques (Term tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Type type HasUniques (Term tyname name uni fun ann) = (HasUnique tyname TypeUnique, HasUnique name TermUnique) | |||||
| type UniOf (Term tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Type | |||||
termSubterms :: forall tyname name (uni :: Type -> Type) fun ann f. Applicative f => (Term tyname name uni fun ann -> f (Term tyname name uni fun ann)) -> Term tyname name uni fun ann -> f (Term tyname name uni fun ann) Source #
termSubtypes :: forall tyname name (uni :: Type -> Type) fun ann f. Applicative f => (Type tyname uni ann -> f (Type tyname uni ann)) -> Term tyname name uni fun ann -> f (Term tyname name uni fun ann) Source #
termMapNames :: forall tyname tyname' name name' (uni :: Type -> Type) fun ann. (tyname -> tyname') -> (name -> name') -> Term tyname name uni fun ann -> Term tyname' name' uni fun ann Source #
programMapNames :: forall tyname tyname' name name' (uni :: Type -> Type) fun ann. (tyname -> tyname') -> (name -> name') -> Program tyname name uni fun ann -> Program tyname' name' uni fun ann Source #
type family UniOf a :: Type -> Type Source #
Extract the universe from a type.
Instances
| type UniOf (Opaque val rep) Source # | |
Defined in PlutusCore.Builtin.Polymorphism | |
| type UniOf (SomeConstant uni rep) Source # | |
Defined in PlutusCore.Builtin.Polymorphism | |
| type UniOf (CkValue uni fun) Source # | |
Defined in PlutusCore.Evaluation.Machine.Ck | |
| type UniOf (CekValue uni fun ann) Source # | |
| type UniOf (Term name uni fun ann) Source # | |
Defined in UntypedPlutusCore.Core.Type | |
| type UniOf (Term tyname name uni fun ann) Source # | |
Defined in PlutusCore.Core.Type | |
data Type tyname (uni :: Type -> Type) ann Source #
A Type assigned to expressions.
Constructors
| TyVar ann tyname | Type variable |
| TyFun ann (Type tyname uni ann) (Type tyname uni ann) | Function type |
| TyIFix ann (Type tyname uni ann) (Type tyname uni ann) | Fix-point type, for constructing self-recursive types |
| TyForall ann tyname (Kind ann) (Type tyname uni ann) | Polymorphic type |
| TyBuiltin ann (SomeTypeIn uni) | Builtin type |
| TyLam ann tyname (Kind ann) (Type tyname uni ann) | Type lambda |
| TyApp ann (Type tyname uni ann) (Type tyname uni ann) | Type application |
| TySOP ann [[Type tyname uni ann]] | Sum-of-products type |
Instances
| tyname ~ TyName => Reference TyName (Type tyname uni) Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping Methods referenceVia :: (forall name. ToScopedName name => name -> NameAnn) -> TyName -> Type tyname uni NameAnn -> Type tyname uni NameAnn Source # | |||||
| DefaultPrettyPlcStrategy (Type tyname uni ann) => PrettyBy PrettyConfigPlc (Type tyname uni ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Plc Methods prettyBy :: PrettyConfigPlc -> Type tyname uni ann -> Doc ann0 # prettyListBy :: PrettyConfigPlc -> [Type tyname uni ann] -> Doc ann0 # | |||||
| (PrettyClassicBy configName tyname, PrettyParens (SomeTypeIn uni), Pretty ann) => PrettyBy (PrettyConfigClassic configName) (Type tyname uni ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Classic Methods prettyBy :: PrettyConfigClassic configName -> Type tyname uni ann -> Doc ann0 # prettyListBy :: PrettyConfigClassic configName -> [Type tyname uni ann] -> Doc ann0 # | |||||
| (PrettyReadableBy configName tyname, PrettyParens (SomeTypeIn uni)) => PrettyBy (PrettyConfigReadable configName) (Type tyname uni a) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Readable Methods prettyBy :: PrettyConfigReadable configName -> Type tyname uni a -> Doc ann # prettyListBy :: PrettyConfigReadable configName -> [Type tyname uni a] -> Doc ann # | |||||
| Functor (Type tyname uni) Source # | |||||
| tyname ~ TyName => CollectScopeInfo (Type tyname uni) Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping Methods collectScopeInfo :: Type tyname uni NameAnn -> ScopeErrorOrInfo Source # | |||||
| tyname ~ TyName => EstablishScoping (Type tyname uni) Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping | |||||
| Generic (Type tyname uni ann) Source # | |||||
Defined in PlutusCore.Core.Type Associated Types
| |||||
| (GShow uni, Show tyname, Show ann) => Show (Type tyname uni ann) Source # | |||||
| (NFData ann, NFData tyname, Closed uni) => NFData (Type tyname uni ann) Source # | |||||
Defined in PlutusCore.Core.Type | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq ann) => Eq (Type NamedTyDeBruijn uni ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Eq Methods (==) :: Type NamedTyDeBruijn uni ann -> Type NamedTyDeBruijn uni ann -> Bool Source # (/=) :: Type NamedTyDeBruijn uni ann -> Type NamedTyDeBruijn uni ann -> Bool Source # | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq ann) => Eq (Type TyDeBruijn uni ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Eq Methods (==) :: Type TyDeBruijn uni ann -> Type TyDeBruijn uni ann -> Bool Source # (/=) :: Type TyDeBruijn uni ann -> Type TyDeBruijn uni ann -> Bool Source # | |||||
| (GEq uni, Eq ann) => Eq (Type TyName uni ann) Source # | |||||
| (Closed uni, Flat ann, Flat tyname) => Flat (Type tyname uni ann) | |||||
| HasUniques (Type tyname uni ann) => Rename (Type tyname uni ann) Source # | |||||
Defined in PlutusCore.Rename | |||||
| (PrettyClassic tyname, PrettyParens (SomeTypeIn uni), Pretty ann) => Pretty (Type tyname uni ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Default | |||||
| type Rep (Type tyname uni ann) Source # | |||||
Defined in PlutusCore.Core.Type type Rep (Type tyname uni ann) = D1 ('MetaData "Type" "PlutusCore.Core.Type" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (((C1 ('MetaCons "TyVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 tyname)) :+: C1 ('MetaCons "TyFun" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann))))) :+: (C1 ('MetaCons "TyIFix" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann)))) :+: C1 ('MetaCons "TyForall" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 tyname)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Kind ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann)))))) :+: ((C1 ('MetaCons "TyBuiltin" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SomeTypeIn uni))) :+: C1 ('MetaCons "TyLam" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 tyname)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Kind ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann))))) :+: (C1 ('MetaCons "TyApp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann)))) :+: C1 ('MetaCons "TySOP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [[Type tyname uni ann]]))))) | |||||
| type HasUniques (Type tyname uni ann) Source # | |||||
Defined in PlutusCore.Core.Type | |||||
typeSubtypes :: forall tyname (uni :: Type -> Type) ann f. Applicative f => (Type tyname uni ann -> f (Type tyname uni ann)) -> Type tyname uni ann -> f (Type tyname uni ann) Source #
typeMapNames :: forall tyname tyname' (uni :: Type -> Type) ann. (tyname -> tyname') -> Type tyname uni ann -> Type tyname' uni ann Source #
Instances
| Functor Kind Source # | |||||
| CollectScopeInfo Kind Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping Methods collectScopeInfo :: Kind NameAnn -> ScopeErrorOrInfo Source # | |||||
| EstablishScoping Kind Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping | |||||
| DefaultPrettyPlcStrategy (Kind ann) => PrettyBy PrettyConfigPlc (Kind ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Plc Methods prettyBy :: PrettyConfigPlc -> Kind ann -> Doc ann0 # prettyListBy :: PrettyConfigPlc -> [Kind ann] -> Doc ann0 # | |||||
| Lift ann => Lift (Kind ann :: Type) Source # | |||||
| Generic (Kind ann) Source # | |||||
Defined in PlutusCore.Core.Type Associated Types
| |||||
| Show ann => Show (Kind ann) Source # | |||||
| NFData ann => NFData (Kind ann) Source # | |||||
Defined in PlutusCore.Core.Type | |||||
| Eq ann => Eq (Kind ann) Source # | |||||
| Hashable ann => Hashable (Kind ann) Source # | |||||
Defined in PlutusCore.Core.Type | |||||
| Flat ann => Flat (Kind ann) | |||||
| Pretty ann => Pretty (Kind ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Default | |||||
| Pretty ann => PrettyBy (PrettyConfigClassic configName) (Kind ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Classic Methods prettyBy :: PrettyConfigClassic configName -> Kind ann -> Doc ann0 # prettyListBy :: PrettyConfigClassic configName -> [Kind ann] -> Doc ann0 # | |||||
| PrettyBy (PrettyConfigReadable configName) (Kind a) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Readable Methods prettyBy :: PrettyConfigReadable configName -> Kind a -> Doc ann # prettyListBy :: PrettyConfigReadable configName -> [Kind a] -> Doc ann # | |||||
| type Rep (Kind ann) Source # | |||||
Defined in PlutusCore.Core.Type type Rep (Kind ann) = D1 ('MetaData "Kind" "PlutusCore.Core.Type" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (C1 ('MetaCons "Type" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann)) :+: C1 ('MetaCons "KindArrow" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Kind ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Kind ann))))) | |||||
| type HasUniques (Kind ann) Source # | |||||
Defined in PlutusCore.Core.Type | |||||
toPatFuncKind :: Kind () -> Kind () Source #
argsFunKind :: Kind ann -> [Kind ann] Source #
Extract all a_i from a_0 -> a_1 -> ... -> r.
data ParserError Source #
An error encountered during parsing.
Constructors
| BuiltinTypeNotAStar !Text !SourcePos | |
| UnknownBuiltinFunction !Text !SourcePos ![Text] | |
| InvalidBuiltinConstant !Text !Text !SourcePos |
Instances
| Generic ParserError Source # | |||||
Defined in PlutusCore.Error Associated Types
Methods from :: ParserError -> Rep ParserError x Source # to :: Rep ParserError x -> ParserError Source # | |||||
| Show ParserError Source # | |||||
Defined in PlutusCore.Error | |||||
| NFData ParserError Source # | |||||
Defined in PlutusCore.Error Methods rnf :: ParserError -> () Source # | |||||
| Eq ParserError Source # | |||||
Defined in PlutusCore.Error Methods (==) :: ParserError -> ParserError -> Bool Source # (/=) :: ParserError -> ParserError -> Bool Source # | |||||
| Ord ParserError Source # | |||||
Defined in PlutusCore.Error Methods compare :: ParserError -> ParserError -> Ordering Source # (<) :: ParserError -> ParserError -> Bool Source # (<=) :: ParserError -> ParserError -> Bool Source # (>) :: ParserError -> ParserError -> Bool Source # (>=) :: ParserError -> ParserError -> Bool Source # max :: ParserError -> ParserError -> ParserError Source # min :: ParserError -> ParserError -> ParserError Source # | |||||
| ShowErrorComponent ParserError Source # | |||||
Defined in PlutusCore.Error | |||||
| Pretty ParserError Source # | |||||
Defined in PlutusCore.Error | |||||
| type Rep ParserError Source # | |||||
Defined in PlutusCore.Error type Rep ParserError = D1 ('MetaData "ParserError" "PlutusCore.Error" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (C1 ('MetaCons "BuiltinTypeNotAStar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SourcePos)) :+: (C1 ('MetaCons "UnknownBuiltinFunction" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SourcePos) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Text]))) :+: C1 ('MetaCons "InvalidBuiltinConstant" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SourcePos))))) | |||||
The version of Plutus Core used by this program.
The intention is to convey different levels of backwards compatibility for existing scripts: - Major version changes are backwards-incompatible - Minor version changes are backwards-compatible - Patch version changes should be entirely invisible (and we will likely not use this level)
The version used should be changed only when the language itself changes. For example, adding a new kind of term to the language would require a minor version bump; removing a kind of term would require a major version bump.
Similarly, changing the semantics of the language will require a version bump, typically a major one. This is the main reason why the version is actually tracked in the AST: we can have two language versions with identical ASTs but different semantics, so we need to track the version explicitly.
Compatibility is about compatibility for specific scripts, not about e.g. tools which consume scripts. Adding a new kind of term does not change how existing scripts behave, but does change what tools would need to do to process scripts.
Constructors
| Version | |
Fields | |
Instances
| Generic Version Source # | |||||
Defined in PlutusCore.Version Associated Types
| |||||
| Show Version Source # | |||||
| NFData Version Source # | |||||
Defined in PlutusCore.Version | |||||
| Eq Version Source # | |||||
| Ord Version Source # | |||||
Defined in PlutusCore.Version | |||||
| Hashable Version Source # | |||||
Defined in PlutusCore.Version | |||||
| Flat Version | |||||
| Pretty Version Source # | |||||
Defined in PlutusCore.Version | |||||
| type Rep Version Source # | |||||
Defined in PlutusCore.Version type Rep Version = D1 ('MetaData "Version" "PlutusCore.Version" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (C1 ('MetaCons "Version" 'PrefixI 'True) (S1 ('MetaSel ('Just "_versionMajor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural) :*: (S1 ('MetaSel ('Just "_versionMinor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural) :*: S1 ('MetaSel ('Just "_versionPatch") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural)))) | |||||
data Program tyname name (uni :: Type -> Type) fun ann Source #
Constructors
| Program | |
Instances
| DefaultPrettyPlcStrategy (Program tyname name uni fun ann) => PrettyBy PrettyConfigPlc (Program tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Plc Methods prettyBy :: PrettyConfigPlc -> Program tyname name uni fun ann -> Doc ann0 # prettyListBy :: PrettyConfigPlc -> [Program tyname name uni fun ann] -> Doc ann0 # | |||||
| (PrettyClassicBy configName (Term tyname name uni fun ann), Pretty ann) => PrettyBy (PrettyConfigClassic configName) (Program tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Classic Methods prettyBy :: PrettyConfigClassic configName -> Program tyname name uni fun ann -> Doc ann0 # prettyListBy :: PrettyConfigClassic configName -> [Program tyname name uni fun ann] -> Doc ann0 # | |||||
| PrettyReadableBy configName (Term tyname name uni fun a) => PrettyBy (PrettyConfigReadable configName) (Program tyname name uni fun a) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Readable Methods prettyBy :: PrettyConfigReadable configName -> Program tyname name uni fun a -> Doc ann # prettyListBy :: PrettyConfigReadable configName -> [Program tyname name uni fun a] -> Doc ann # | |||||
| Functor (Program tyname name uni fun) Source # | |||||
| (tyname ~ TyName, name ~ Name) => CollectScopeInfo (Program tyname name uni fun) Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping Methods collectScopeInfo :: Program tyname name uni fun NameAnn -> ScopeErrorOrInfo Source # | |||||
| (tyname ~ TyName, name ~ Name) => EstablishScoping (Program tyname name uni fun) Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping | |||||
| Generic (Program tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Type Associated Types
| |||||
| (Show tyname, Show name, GShow uni, Everywhere uni Show, Show fun, Show ann, Closed uni) => Show (Program tyname name uni fun ann) Source # | |||||
| (NFData tyname, NFData name, Everywhere uni NFData, NFData fun, NFData ann, Closed uni) => NFData (Program tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Type | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann, Eq (Term tyname name uni fun ann)) => Eq (Program tyname name uni fun ann) Source # | |||||
| (Flat ann, Flat (Term tyname name uni fun ann)) => Flat (Program tyname name uni fun ann) | |||||
| HasUniques (Program tyname name uni fun ann) => Rename (Program tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Rename | |||||
| (PrettyClassic tyname, PrettyClassic name, PrettyUni uni, Pretty fun, Pretty ann) => Pretty (Program tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Default | |||||
| type Rep (Program tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Type type Rep (Program tyname name uni fun ann) = D1 ('MetaData "Program" "PlutusCore.Core.Type" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (C1 ('MetaCons "Program" 'PrefixI 'True) (S1 ('MetaSel ('Just "_progAnn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: (S1 ('MetaSel ('Just "_progVer") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Version) :*: S1 ('MetaSel ('Just "_progTerm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term tyname name uni fun ann))))) | |||||
| type HasUniques (Program tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Type | |||||
A Name represents variables/names in Plutus Core.
Constructors
| Name | |
Fields
| |
Instances
| Generic Name Source # | |||||
Defined in PlutusCore.Name.Unique Associated Types
| |||||
| Show Name Source # | |||||
| NFData Name Source # | |||||
Defined in PlutusCore.Name.Unique | |||||
| Eq Name Source # | |||||
| Ord Name Source # | |||||
Defined in PlutusCore.Name.Unique | |||||
| Hashable Name Source # | |||||
Defined in PlutusCore.Name.Unique | |||||
| Flat Name | |||||
| ToScopedName Name Source # | |||||
Defined in PlutusCore.Check.Scoping Methods toScopedName :: Name -> ScopedName Source # | |||||
| HasText Name Source # | |||||
| Pretty Name Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Default | |||||
| HasUnique Name TermUnique Source # | |||||
Defined in PlutusCore.Name.Unique | |||||
| HasPrettyConfigName config => PrettyBy config Name Source # | |||||
Defined in PlutusCore.Name.Unique | |||||
| Lift Name Source # | |||||
| name ~ Name => Reference Name (Term name uni fun) Source # | |||||
Defined in UntypedPlutusCore.Core.Instance.Scoping Methods referenceVia :: (forall name0. ToScopedName name0 => name0 -> NameAnn) -> Name -> Term name uni fun NameAnn -> Term name uni fun NameAnn Source # | |||||
| name ~ Name => Reference Name (Term tyname name uni fun) Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping Methods referenceVia :: (forall name0. ToScopedName name0 => name0 -> NameAnn) -> Name -> Term tyname name uni fun NameAnn -> Term tyname name uni fun NameAnn Source # | |||||
| Flat (Binder Name) | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (Term Name uni fun ann) Source # | |||||
| HashableTermConstraints uni fun ann => Hashable (Term Name uni fun ann) Source # | |||||
Defined in UntypedPlutusCore.Core.Instance.Eq | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (Term TyName Name uni fun ann) Source # | |||||
| HasConstant (Term TyName Name uni fun ()) Source # | |||||
| type Rep Name Source # | |||||
Defined in PlutusCore.Name.Unique type Rep Name = D1 ('MetaData "Name" "PlutusCore.Name.Unique" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (C1 ('MetaCons "Name" 'PrefixI 'True) (S1 ('MetaSel ('Just "_nameText") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "_nameUnique") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Unique))) | |||||
We use a newtype to enforce separation between names used for types and
those used for terms.
Instances
| Generic TyName Source # | |||||
Defined in PlutusCore.Name.Unique Associated Types
| |||||
| Show TyName Source # | |||||
| NFData TyName Source # | |||||
Defined in PlutusCore.Name.Unique | |||||
| Eq TyName Source # | |||||
| Ord TyName Source # | |||||
| Hashable TyName Source # | |||||
Defined in PlutusCore.Name.Unique | |||||
| Wrapped TyName Source # | |||||
Defined in PlutusCore.Name.Unique Associated Types
| |||||
| Flat TyName | |||||
| ToScopedName TyName Source # | |||||
Defined in PlutusCore.Check.Scoping Methods toScopedName :: TyName -> ScopedName Source # | |||||
| HasText TyName Source # | |||||
| Pretty TyName Source # | |||||
Defined in PlutusCore.Core.Instance.Pretty.Default | |||||
| HasUnique TyName TypeUnique Source # | |||||
Defined in PlutusCore.Name.Unique | |||||
| HasPrettyConfigName config => PrettyBy config TyName Source # | |||||
Defined in PlutusCore.Name.Unique | |||||
| Lift TyName Source # | |||||
| tyname ~ TyName => Reference TyName (Type tyname uni) Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping Methods referenceVia :: (forall name. ToScopedName name => name -> NameAnn) -> TyName -> Type tyname uni NameAnn -> Type tyname uni NameAnn Source # | |||||
| tyname ~ TyName => Reference TyName (Term tyname name uni fun) Source # | |||||
Defined in PlutusCore.Core.Instance.Scoping Methods referenceVia :: (forall name0. ToScopedName name0 => name0 -> NameAnn) -> TyName -> Term tyname name uni fun NameAnn -> Term tyname name uni fun NameAnn Source # | |||||
| Flat (Binder TyName) | |||||
| (GEq uni, Eq ann) => Eq (Type TyName uni ann) Source # | |||||
| TermLike (Term name uni fun) TyName name uni fun Source # | |||||
Defined in UntypedPlutusCore.Core.Type Methods var :: ann -> name -> Term name uni fun ann Source # tyAbs :: ann -> TyName -> Kind ann -> Term name uni fun ann -> Term name uni fun ann Source # lamAbs :: ann -> name -> Type TyName uni ann -> Term name uni fun ann -> Term name uni fun ann Source # apply :: ann -> Term name uni fun ann -> Term name uni fun ann -> Term name uni fun ann Source # constant :: ann -> Some (ValueOf uni) -> Term name uni fun ann Source # builtin :: ann -> fun -> Term name uni fun ann Source # tyInst :: ann -> Term name uni fun ann -> Type TyName uni ann -> Term name uni fun ann Source # unwrap :: ann -> Term name uni fun ann -> Term name uni fun ann Source # iWrap :: ann -> Type TyName uni ann -> Type TyName uni ann -> Term name uni fun ann -> Term name uni fun ann Source # error :: ann -> Type TyName uni ann -> Term name uni fun ann Source # constr :: ann -> Type TyName uni ann -> Word64 -> [Term name uni fun ann] -> Term name uni fun ann Source # kase :: ann -> Type TyName uni ann -> Term name uni fun ann -> [Term name uni fun ann] -> Term name uni fun ann Source # termLet :: ann -> TermDef (Term name uni fun) TyName name uni ann -> Term name uni fun ann -> Term name uni fun ann Source # typeLet :: ann -> TypeDef TyName uni ann -> Term name uni fun ann -> Term name uni fun ann Source # | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (Term TyName Name uni fun ann) Source # | |||||
| HasConstant (Term TyName Name uni fun ()) Source # | |||||
| type Rep TyName Source # | |||||
Defined in PlutusCore.Name.Unique | |||||
| type Unwrapped TyName Source # | |||||
Defined in PlutusCore.Name.Unique | |||||
A unique identifier
This is normally a positive integral number, except
in topUnique where we make use of a negative unique to signify top-level.
Instances
| Enum Unique Source # | |
Defined in PlutusCore.Name.Unique Methods succ :: Unique -> Unique Source # pred :: Unique -> Unique Source # toEnum :: Int -> Unique Source # fromEnum :: Unique -> Int Source # enumFrom :: Unique -> [Unique] Source # enumFromThen :: Unique -> Unique -> [Unique] Source # enumFromTo :: Unique -> Unique -> [Unique] Source # enumFromThenTo :: Unique -> Unique -> Unique -> [Unique] Source # | |
| Show Unique Source # | |
| NFData Unique Source # | |
Defined in PlutusCore.Name.Unique | |
| Eq Unique Source # | |
| Ord Unique Source # | |
| Hashable Unique Source # | |
Defined in PlutusCore.Name.Unique | |
| Flat Unique | |
| Pretty Unique Source # | |
Defined in PlutusCore.Name.Unique | |
| HasUnique Unique Unique Source # | |
| Lift Unique Source # | |
newtype UniqueMap unique a Source #
A mapping from Uniques to arbitrary values of type a.
Since Unique is equivalent to Int (see PlutusCore.Name.Unique),
we can use an IntMap representation for this type.
Constructors
| UniqueMap | |
Fields
| |
Instances
| Foldable (UniqueMap unique) Source # | |
Defined in PlutusCore.Name.UniqueMap Methods fold :: Monoid m => UniqueMap unique m -> m Source # foldMap :: Monoid m => (a -> m) -> UniqueMap unique a -> m Source # foldMap' :: Monoid m => (a -> m) -> UniqueMap unique a -> m Source # foldr :: (a -> b -> b) -> b -> UniqueMap unique a -> b Source # foldr' :: (a -> b -> b) -> b -> UniqueMap unique a -> b Source # foldl :: (b -> a -> b) -> b -> UniqueMap unique a -> b Source # foldl' :: (b -> a -> b) -> b -> UniqueMap unique a -> b Source # foldr1 :: (a -> a -> a) -> UniqueMap unique a -> a Source # foldl1 :: (a -> a -> a) -> UniqueMap unique a -> a Source # toList :: UniqueMap unique a -> [a] Source # null :: UniqueMap unique a -> Bool Source # length :: UniqueMap unique a -> Int Source # elem :: Eq a => a -> UniqueMap unique a -> Bool Source # maximum :: Ord a => UniqueMap unique a -> a Source # minimum :: Ord a => UniqueMap unique a -> a Source # | |
| Functor (UniqueMap unique) Source # | |
| Monoid (UniqueMap unique a) Source # | |
| Semigroup (UniqueMap unique a) Source # | |
| Show a => Show (UniqueMap unique a) Source # | |
| Eq a => Eq (UniqueMap unique a) Source # | |
newtype UniqueSet unique Source #
A set containing Uniques. Since Unique is equivalent to Int
(see PlutusCore.Name.Unique), we can use an IntSet representation for this type.
Constructors
| UniqueSet | |
Fields | |
newtype Normalized a Source #
Constructors
| Normalized | |
Fields
| |
Instances
| Foldable Normalized Source # | |||||
Defined in PlutusCore.Core.Type Methods fold :: Monoid m => Normalized m -> m Source # foldMap :: Monoid m => (a -> m) -> Normalized a -> m Source # foldMap' :: Monoid m => (a -> m) -> Normalized a -> m Source # foldr :: (a -> b -> b) -> b -> Normalized a -> b Source # foldr' :: (a -> b -> b) -> b -> Normalized a -> b Source # foldl :: (b -> a -> b) -> b -> Normalized a -> b Source # foldl' :: (b -> a -> b) -> b -> Normalized a -> b Source # foldr1 :: (a -> a -> a) -> Normalized a -> a Source # foldl1 :: (a -> a -> a) -> Normalized a -> a Source # toList :: Normalized a -> [a] Source # null :: Normalized a -> Bool Source # length :: Normalized a -> Int Source # elem :: Eq a => a -> Normalized a -> Bool Source # maximum :: Ord a => Normalized a -> a Source # minimum :: Ord a => Normalized a -> a Source # sum :: Num a => Normalized a -> a Source # product :: Num a => Normalized a -> a Source # | |||||
| Traversable Normalized Source # | |||||
Defined in PlutusCore.Core.Type Methods traverse :: Applicative f => (a -> f b) -> Normalized a -> f (Normalized b) Source # sequenceA :: Applicative f => Normalized (f a) -> f (Normalized a) Source # mapM :: Monad m => (a -> m b) -> Normalized a -> m (Normalized b) Source # sequence :: Monad m => Normalized (m a) -> m (Normalized a) Source # | |||||
| Applicative Normalized Source # | |||||
Defined in PlutusCore.Core.Type Methods pure :: a -> Normalized a Source # (<*>) :: Normalized (a -> b) -> Normalized a -> Normalized b Source # liftA2 :: (a -> b -> c) -> Normalized a -> Normalized b -> Normalized c Source # (*>) :: Normalized a -> Normalized b -> Normalized b Source # (<*) :: Normalized a -> Normalized b -> Normalized a Source # | |||||
| Functor Normalized Source # | |||||
Defined in PlutusCore.Core.Type Methods fmap :: (a -> b) -> Normalized a -> Normalized b Source # (<$) :: a -> Normalized b -> Normalized a Source # | |||||
| PrettyBy config a => PrettyBy config (Normalized a) Source # | |||||
Defined in PlutusCore.Core.Type Methods prettyBy :: config -> Normalized a -> Doc ann # prettyListBy :: config -> [Normalized a] -> Doc ann # | |||||
| Generic (Normalized a) Source # | |||||
Defined in PlutusCore.Core.Type Associated Types
Methods from :: Normalized a -> Rep (Normalized a) x Source # to :: Rep (Normalized a) x -> Normalized a Source # | |||||
| Show a => Show (Normalized a) Source # | |||||
Defined in PlutusCore.Core.Type | |||||
| NFData a => NFData (Normalized a) Source # | |||||
Defined in PlutusCore.Core.Type Methods rnf :: Normalized a -> () Source # | |||||
| Eq a => Eq (Normalized a) Source # | |||||
Defined in PlutusCore.Core.Type Methods (==) :: Normalized a -> Normalized a -> Bool Source # (/=) :: Normalized a -> Normalized a -> Bool Source # | |||||
| Flat a => Flat (Normalized a) | |||||
Defined in PlutusCore.FlatInstances Methods encode :: Normalized a -> Encoding decode :: Get (Normalized a) size :: Normalized a -> NumBits -> NumBits | |||||
| Rename a => Rename (Normalized a) Source # | |||||
Defined in PlutusCore.Rename Methods rename :: MonadQuote m => Normalized a -> m (Normalized a) Source # | |||||
| Pretty a => Pretty (Normalized a) Source # | |||||
Defined in PlutusCore.Core.Type | |||||
| type Rep (Normalized a) Source # | |||||
Defined in PlutusCore.Core.Type type Rep (Normalized a) = D1 ('MetaData "Normalized" "PlutusCore.Core.Type" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'True) (C1 ('MetaCons "Normalized" 'PrefixI 'True) (S1 ('MetaSel ('Just "unNormalized") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) | |||||
latestVersion :: Version Source #
The latest version of Plutus Core supported by this library.
termAnn :: forall tyname name (uni :: Type -> Type) fun ann. Term tyname name uni fun ann -> ann Source #
tyVarDeclAnn :: forall tyname ann f. Functor f => (ann -> f ann) -> TyVarDecl tyname ann -> f (TyVarDecl tyname ann) Source #
tyVarDeclName :: forall tyname1 ann tyname2 f. Functor f => (tyname1 -> f tyname2) -> TyVarDecl tyname1 ann -> f (TyVarDecl tyname2 ann) Source #
tyVarDeclKind :: forall tyname ann f. Functor f => (Kind ann -> f (Kind ann)) -> TyVarDecl tyname ann -> f (TyVarDecl tyname ann) Source #
varDeclAnn :: forall tyname name (uni :: Type -> Type) ann f. Functor f => (ann -> f ann) -> VarDecl tyname name uni ann -> f (VarDecl tyname name uni ann) Source #
varDeclName :: forall tyname name1 (uni :: Type -> Type) ann name2 f. Functor f => (name1 -> f name2) -> VarDecl tyname name1 uni ann -> f (VarDecl tyname name2 uni ann) Source #
varDeclType :: forall tyname1 name (uni1 :: Type -> Type) ann tyname2 (uni2 :: Type -> Type) f. Functor f => (Type tyname1 uni1 ann -> f (Type tyname2 uni2 ann)) -> VarDecl tyname1 name uni1 ann -> f (VarDecl tyname2 name uni2 ann) Source #
tyDeclAnn :: forall tyname (uni :: Type -> Type) ann f. Functor f => (ann -> f ann) -> TyDecl tyname uni ann -> f (TyDecl tyname uni ann) Source #
tyDeclType :: forall tyname1 (uni1 :: Type -> Type) ann tyname2 (uni2 :: Type -> Type) f. Functor f => (Type tyname1 uni1 ann -> f (Type tyname2 uni2 ann)) -> TyDecl tyname1 uni1 ann -> f (TyDecl tyname2 uni2 ann) Source #
tyDeclKind :: forall tyname (uni :: Type -> Type) ann f. Functor f => (Kind ann -> f (Kind ann)) -> TyDecl tyname uni ann -> f (TyDecl tyname uni ann) Source #
progAnn :: forall tyname name (uni :: Type -> Type) fun ann f. Functor f => (ann -> f ann) -> Program tyname name uni fun ann -> f (Program tyname name uni fun ann) Source #
progVer :: forall tyname name (uni :: Type -> Type) fun ann f. Functor f => (Version -> f Version) -> Program tyname name uni fun ann -> f (Program tyname name uni fun ann) Source #
progTerm :: forall tyname1 name1 (uni1 :: Type -> Type) fun1 ann tyname2 name2 (uni2 :: Type -> Type) fun2 f. Functor f => (Term tyname1 name1 uni1 fun1 ann -> f (Term tyname2 name2 uni2 fun2 ann)) -> Program tyname1 name1 uni1 fun1 ann -> f (Program tyname2 name2 uni2 fun2 ann) Source #
mapFun :: forall fun fun' tyname name (uni :: Type -> Type) ann. (fun -> fun') -> Term tyname name uni fun ann -> Term tyname name uni fun' ann Source #
Map a function over the set of built-in functions.
DeBruijn representation
A term name as a de Bruijn index, without the name string.
Instances
| Generic DeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Associated Types
| |||||
| Show DeBruijn Source # | |||||
| NFData DeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
| Eq DeBruijn Source # | |||||
| Hashable DeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
| Flat DeBruijn | |||||
| HasIndex DeBruijn Source # | |||||
| HasPrettyConfigName config => PrettyBy config DeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
| Flat (Binder DeBruijn) | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (Term DeBruijn uni fun ann) Source # | |||||
| HashableTermConstraints uni fun ann => Hashable (Term DeBruijn uni fun ann) Source # | |||||
Defined in UntypedPlutusCore.Core.Instance.Eq | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (Term TyDeBruijn DeBruijn uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Eq Methods (==) :: Term TyDeBruijn DeBruijn uni fun ann -> Term TyDeBruijn DeBruijn uni fun ann -> Bool Source # (/=) :: Term TyDeBruijn DeBruijn uni fun ann -> Term TyDeBruijn DeBruijn uni fun ann -> Bool Source # | |||||
| type Rep DeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
newtype TyDeBruijn Source #
A type name as a de Bruijn index, without the name string.
Constructors
| TyDeBruijn DeBruijn |
Instances
| Generic TyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Associated Types
| |||||
| Show TyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
| NFData TyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Methods rnf :: TyDeBruijn -> () Source # | |||||
| Eq TyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Methods (==) :: TyDeBruijn -> TyDeBruijn -> Bool Source # (/=) :: TyDeBruijn -> TyDeBruijn -> Bool Source # | |||||
| Wrapped TyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Associated Types
Methods _Wrapped' :: Iso' TyDeBruijn (Unwrapped TyDeBruijn) | |||||
| Flat TyDeBruijn | |||||
Defined in PlutusCore.FlatInstances Methods encode :: TyDeBruijn -> Encoding decode :: Get TyDeBruijn size :: TyDeBruijn -> NumBits -> NumBits | |||||
| HasIndex TyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
| HasPrettyConfigName config => PrettyBy config TyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Methods prettyBy :: config -> TyDeBruijn -> Doc ann # prettyListBy :: config -> [TyDeBruijn] -> Doc ann # | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq ann) => Eq (Type TyDeBruijn uni ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Eq Methods (==) :: Type TyDeBruijn uni ann -> Type TyDeBruijn uni ann -> Bool Source # (/=) :: Type TyDeBruijn uni ann -> Type TyDeBruijn uni ann -> Bool Source # | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (Term TyDeBruijn DeBruijn uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Eq Methods (==) :: Term TyDeBruijn DeBruijn uni fun ann -> Term TyDeBruijn DeBruijn uni fun ann -> Bool Source # (/=) :: Term TyDeBruijn DeBruijn uni fun ann -> Term TyDeBruijn DeBruijn uni fun ann -> Bool Source # | |||||
| type Rep TyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal type Rep TyDeBruijn = D1 ('MetaData "TyDeBruijn" "PlutusCore.DeBruijn.Internal" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'True) (C1 ('MetaCons "TyDeBruijn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DeBruijn))) | |||||
| type Unwrapped TyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
data NamedDeBruijn Source #
A term name as a de Bruijn index.
Constructors
| NamedDeBruijn | |
Fields
| |
Instances
| Generic NamedDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Associated Types
Methods from :: NamedDeBruijn -> Rep NamedDeBruijn x Source # to :: Rep NamedDeBruijn x -> NamedDeBruijn Source # | |||||
| Read NamedDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
| Show NamedDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
| NFData NamedDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Methods rnf :: NamedDeBruijn -> () Source # | |||||
| Eq NamedDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Methods (==) :: NamedDeBruijn -> NamedDeBruijn -> Bool Source # (/=) :: NamedDeBruijn -> NamedDeBruijn -> Bool Source # | |||||
| Hashable NamedDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
| Flat NamedDeBruijn | |||||
Defined in PlutusCore.FlatInstances Methods encode :: NamedDeBruijn -> Encoding decode :: Get NamedDeBruijn size :: NamedDeBruijn -> NumBits -> NumBits | |||||
| HasIndex NamedDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
| HasPrettyConfigName config => PrettyBy config NamedDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Methods prettyBy :: config -> NamedDeBruijn -> Doc ann # prettyListBy :: config -> [NamedDeBruijn] -> Doc ann # | |||||
| Flat (Binder NamedDeBruijn) | |||||
Defined in PlutusCore.FlatInstances Methods encode :: Binder NamedDeBruijn -> Encoding decode :: Get (Binder NamedDeBruijn) size :: Binder NamedDeBruijn -> NumBits -> NumBits | |||||
| ThrowableBuiltins uni fun => MonadError (CekEvaluationException NamedDeBruijn uni fun) (CekM uni fun s) Source # | |||||
Defined in UntypedPlutusCore.Evaluation.Machine.Cek.Internal Methods throwError :: CekEvaluationException NamedDeBruijn uni fun -> CekM uni fun s a Source # catchError :: CekM uni fun s a -> (CekEvaluationException NamedDeBruijn uni fun -> CekM uni fun s a) -> CekM uni fun s a Source # | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (Term NamedDeBruijn uni fun ann) Source # | |||||
Defined in UntypedPlutusCore.Core.Instance.Eq Methods (==) :: Term NamedDeBruijn uni fun ann -> Term NamedDeBruijn uni fun ann -> Bool Source # (/=) :: Term NamedDeBruijn uni fun ann -> Term NamedDeBruijn uni fun ann -> Bool Source # | |||||
| HashableTermConstraints uni fun ann => Hashable (Term NamedDeBruijn uni fun ann) Source # | |||||
Defined in UntypedPlutusCore.Core.Instance.Eq Methods hashWithSalt :: Int -> Term NamedDeBruijn uni fun ann -> Int hash :: Term NamedDeBruijn uni fun ann -> Int | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (Term NamedTyDeBruijn NamedDeBruijn uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Eq Methods (==) :: Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> Bool Source # (/=) :: Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> Bool Source # | |||||
| type Rep NamedDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal type Rep NamedDeBruijn = D1 ('MetaData "NamedDeBruijn" "PlutusCore.DeBruijn.Internal" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (C1 ('MetaCons "NamedDeBruijn" 'PrefixI 'True) (S1 ('MetaSel ('Just "ndbnString") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "ndbnIndex") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Index))) | |||||
newtype NamedTyDeBruijn Source #
A type name as a de Bruijn index.
Constructors
| NamedTyDeBruijn NamedDeBruijn |
Instances
| Generic NamedTyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Associated Types
Methods from :: NamedTyDeBruijn -> Rep NamedTyDeBruijn x Source # to :: Rep NamedTyDeBruijn x -> NamedTyDeBruijn Source # | |||||
| Show NamedTyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
| NFData NamedTyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Methods rnf :: NamedTyDeBruijn -> () Source # | |||||
| Eq NamedTyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Methods (==) :: NamedTyDeBruijn -> NamedTyDeBruijn -> Bool Source # (/=) :: NamedTyDeBruijn -> NamedTyDeBruijn -> Bool Source # | |||||
| Wrapped NamedTyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Associated Types
Methods _Wrapped' :: Iso' NamedTyDeBruijn (Unwrapped NamedTyDeBruijn) | |||||
| Flat NamedTyDeBruijn | |||||
Defined in PlutusCore.FlatInstances Methods encode :: NamedTyDeBruijn -> Encoding decode :: Get NamedTyDeBruijn size :: NamedTyDeBruijn -> NumBits -> NumBits | |||||
| HasIndex NamedTyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
| HasPrettyConfigName config => PrettyBy config NamedTyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Methods prettyBy :: config -> NamedTyDeBruijn -> Doc ann # prettyListBy :: config -> [NamedTyDeBruijn] -> Doc ann # | |||||
| Flat (Binder NamedTyDeBruijn) | |||||
Defined in PlutusCore.FlatInstances Methods encode :: Binder NamedTyDeBruijn -> Encoding decode :: Get (Binder NamedTyDeBruijn) size :: Binder NamedTyDeBruijn -> NumBits -> NumBits | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq ann) => Eq (Type NamedTyDeBruijn uni ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Eq Methods (==) :: Type NamedTyDeBruijn uni ann -> Type NamedTyDeBruijn uni ann -> Bool Source # (/=) :: Type NamedTyDeBruijn uni ann -> Type NamedTyDeBruijn uni ann -> Bool Source # | |||||
| (GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (Term NamedTyDeBruijn NamedDeBruijn uni fun ann) Source # | |||||
Defined in PlutusCore.Core.Instance.Eq Methods (==) :: Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> Bool Source # (/=) :: Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> Bool Source # | |||||
| type Rep NamedTyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal type Rep NamedTyDeBruijn = D1 ('MetaData "NamedTyDeBruijn" "PlutusCore.DeBruijn.Internal" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'True) (C1 ('MetaCons "NamedTyDeBruijn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NamedDeBruijn))) | |||||
| type Unwrapped NamedTyDeBruijn Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
deBruijnTerm :: forall m (uni :: Type -> Type) fun ann. MonadError FreeVariableError m => Term TyName Name uni fun ann -> m (Term NamedTyDeBruijn NamedDeBruijn uni fun ann) Source #
Convert a Term with TyNames and Names into a Term with NamedTyDeBruijns and
NamedDeBruijns. Will throw an error if a free variable is encountered.
unDeBruijnTerm :: forall m (uni :: Type -> Type) fun ann. (MonadQuote m, MonadError FreeVariableError m) => Term NamedTyDeBruijn NamedDeBruijn uni fun ann -> m (Term TyName Name uni fun ann) Source #
Convert a Term with NamedTyDeBruijns and NamedDeBruijns into a Term with TyNames and
Names. Will throw an error if a free variable is encountered.
Processing
type family HasUniques a Source #
All kinds of uniques an entity contains.
Instances
| type HasUniques (Kind ann) Source # | |
Defined in PlutusCore.Core.Type | |
| type HasUniques (Type tyname uni ann) Source # | |
Defined in PlutusCore.Core.Type | |
| type HasUniques (Program name uni fun ann) Source # | |
Defined in UntypedPlutusCore.Core.Type | |
| type HasUniques (Term name uni fun ann) Source # | |
Defined in UntypedPlutusCore.Core.Type | |
| type HasUniques (Program tyname name uni fun ann) Source # | |
Defined in PlutusCore.Core.Type | |
| type HasUniques (Term tyname name uni fun ann) Source # | |
Defined in PlutusCore.Core.Type type HasUniques (Term tyname name uni fun ann) = (HasUnique tyname TypeUnique, HasUnique name TermUnique) | |
The class of things that can be renamed. I.e. things that are capable of satisfying the global uniqueness condition.
Methods
rename :: MonadQuote m => a -> m a Source #
Rename Uniques so that they're globally unique.
In case there are any free variables, they must be left untouched and bound variables
must not get renamed to free ones.
Must always assign new names to bound variables,
so that rename can be used for alpha-renaming as well.
Instances
| Rename a => Rename (Normalized a) Source # | |
Defined in PlutusCore.Rename Methods rename :: MonadQuote m => Normalized a -> m (Normalized a) Source # | |
| HasUniques (Type tyname uni ann) => Rename (Type tyname uni ann) Source # | |
Defined in PlutusCore.Rename | |
| HasUniques (Program name uni fun ann) => Rename (Program name uni fun ann) Source # | |
Defined in UntypedPlutusCore.Rename | |
| HasUniques (Term name uni fun ann) => Rename (Term name uni fun ann) Source # | |
Defined in UntypedPlutusCore.Rename | |
| HasUniques (Program tyname name uni fun ann) => Rename (Program tyname name uni fun ann) Source # | |
Defined in PlutusCore.Rename | |
| HasUniques (Term tyname name uni fun ann) => Rename (Term tyname name uni fun ann) Source # | |
Defined in PlutusCore.Rename | |
Type checking
module PlutusCore.TypeCheck
normalizeTypesIn :: forall tyname name (uni :: Type -> Type) m fun ann. (HasUnique tyname TypeUnique, HasUnique name TermUnique, MonadNormalizeType uni m) => Term tyname name uni fun ann -> m (Term tyname name uni fun ann) Source #
normalizeTypesInProgram :: forall tyname name (uni :: Type -> Type) m fun ann. (HasUnique tyname TypeUnique, HasUnique name TermUnique, MonadNormalizeType uni m) => Program tyname name uni fun ann -> m (Program tyname name uni fun ann) Source #
data TypeError term (uni :: Type -> Type) fun ann Source #
Instances
| (Pretty term, PrettyUni uni, Pretty fun, Pretty ann) => PrettyBy PrettyConfigPlc (TypeError term uni fun ann) Source # | |||||
Defined in PlutusCore.Error Methods prettyBy :: PrettyConfigPlc -> TypeError term uni fun ann -> Doc ann0 # prettyListBy :: PrettyConfigPlc -> [TypeError term uni fun ann] -> Doc ann0 # | |||||
| Functor (TypeError term uni fun) Source # | |||||
| Generic (TypeError term uni fun ann) Source # | |||||
Defined in PlutusCore.Error Associated Types
| |||||
| (GShow uni, Show term, Show fun, Show ann) => Show (TypeError term uni fun ann) Source # | |||||
| (Closed uni, NFData ann, NFData term, NFData fun) => NFData (TypeError term uni fun ann) Source # | |||||
Defined in PlutusCore.Error | |||||
| (GEq uni, Eq term, Eq fun, Eq ann) => Eq (TypeError term uni fun ann) Source # | |||||
| type Rep (TypeError term uni fun ann) Source # | |||||
Defined in PlutusCore.Error type Rep (TypeError term uni fun ann) = D1 ('MetaData "TypeError" "PlutusCore.Error" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (((C1 ('MetaCons "KindMismatch" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Type TyName uni ()))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExpectedShapeOr (Kind ()))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Kind ())))) :+: C1 ('MetaCons "TypeMismatch" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 term)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExpectedShapeOr (Type TyName uni ()))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Normalized (Type TyName uni ())))))) :+: (C1 ('MetaCons "TyNameMismatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyName))) :+: C1 ('MetaCons "NameMismatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name))))) :+: ((C1 ('MetaCons "FreeTypeVariableE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyName)) :+: C1 ('MetaCons "FreeVariableE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name))) :+: (C1 ('MetaCons "UnknownBuiltinFunctionE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 fun)) :+: C1 ('MetaCons "UnsupportedCaseBuiltin" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text))))) | |||||
Errors
data Error (uni :: Type -> Type) fun ann Source #
Constructors
| ParseErrorE !ParserErrorBundle | |
| UniqueCoherencyErrorE !(UniqueError ann) | |
| TypeErrorE !(TypeError (Term TyName Name uni fun ()) uni fun ann) | |
| NormCheckErrorE !(NormCheckError TyName Name uni fun ann) | |
| FreeVariableErrorE !FreeVariableError |
Instances
| (PrettyUni uni, Pretty fun, Pretty ann) => PrettyBy PrettyConfigPlc (Error uni fun ann) Source # | |||||
Defined in PlutusCore.Error Methods prettyBy :: PrettyConfigPlc -> Error uni fun ann -> Doc ann0 # prettyListBy :: PrettyConfigPlc -> [Error uni fun ann] -> Doc ann0 # | |||||
| Functor (Error uni fun) Source # | |||||
| Generic (Error uni fun ann) Source # | |||||
Defined in PlutusCore.Error Associated Types
| |||||
| (Show fun, Show ann, Closed uni, Everywhere uni Show, GShow uni, Show ParserError) => Show (Error uni fun ann) Source # | |||||
| (NFData fun, NFData ann, Closed uni, Everywhere uni NFData, NFData ParserError) => NFData (Error uni fun ann) Source # | |||||
Defined in PlutusCore.Error | |||||
| (Eq fun, Eq ann, Closed uni, Everywhere uni Eq, GEq uni, Eq ParserError) => Eq (Error uni fun ann) Source # | |||||
| type Rep (Error uni fun ann) Source # | |||||
Defined in PlutusCore.Error type Rep (Error uni fun ann) = D1 ('MetaData "Error" "PlutusCore.Error" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) ((C1 ('MetaCons "ParseErrorE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ParserErrorBundle)) :+: C1 ('MetaCons "UniqueCoherencyErrorE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (UniqueError ann)))) :+: (C1 ('MetaCons "TypeErrorE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (TypeError (Term TyName Name uni fun ()) uni fun ann))) :+: (C1 ('MetaCons "NormCheckErrorE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NormCheckError TyName Name uni fun ann))) :+: C1 ('MetaCons "FreeVariableErrorE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 FreeVariableError))))) | |||||
data NormCheckError tyname name (uni :: Type -> Type) fun ann Source #
Constructors
| BadType !ann !(Type tyname uni ann) !Text | |
| BadTerm !ann !(Term tyname name uni fun ann) !Text |
Instances
| (Pretty ann, PrettyBy config (Type tyname uni ann), PrettyBy config (Term tyname name uni fun ann)) => PrettyBy config (NormCheckError tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Error Methods prettyBy :: config -> NormCheckError tyname name uni fun ann -> Doc ann0 # prettyListBy :: config -> [NormCheckError tyname name uni fun ann] -> Doc ann0 # | |||||
| Functor (NormCheckError tyname name uni fun) Source # | |||||
Defined in PlutusCore.Error Methods fmap :: (a -> b) -> NormCheckError tyname name uni fun a -> NormCheckError tyname name uni fun b Source # (<$) :: a -> NormCheckError tyname name uni fun b -> NormCheckError tyname name uni fun a Source # | |||||
| Generic (NormCheckError tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Error Associated Types
Methods from :: NormCheckError tyname name uni fun ann -> Rep (NormCheckError tyname name uni fun ann) x Source # to :: Rep (NormCheckError tyname name uni fun ann) x -> NormCheckError tyname name uni fun ann Source # | |||||
| (Show tyname, Show name, Closed uni, Everywhere uni Show, Show fun, Show ann, GShow uni) => Show (NormCheckError tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Error | |||||
| (NFData tyname, NFData name, Closed uni, Everywhere uni NFData, NFData fun, NFData ann) => NFData (NormCheckError tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Error Methods rnf :: NormCheckError tyname name uni fun ann -> () Source # | |||||
| (Eq (Term tyname name uni fun ann), Eq (Type tyname uni ann), GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (NormCheckError tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Error Methods (==) :: NormCheckError tyname name uni fun ann -> NormCheckError tyname name uni fun ann -> Bool Source # (/=) :: NormCheckError tyname name uni fun ann -> NormCheckError tyname name uni fun ann -> Bool Source # | |||||
| type Rep (NormCheckError tyname name uni fun ann) Source # | |||||
Defined in PlutusCore.Error type Rep (NormCheckError tyname name uni fun ann) = D1 ('MetaData "NormCheckError" "PlutusCore.Error" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (C1 ('MetaCons "BadType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Type tyname uni ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text))) :+: C1 ('MetaCons "BadTerm" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Term tyname name uni fun ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)))) | |||||
data UniqueError ann Source #
Constructors
| MultiplyDefined !Unique !ann !ann | |
| IncoherentUsage !Unique !ann !ann | |
| FreeVariable !Unique !ann |
Instances
| Functor UniqueError Source # | |||||
Defined in PlutusCore.Error Methods fmap :: (a -> b) -> UniqueError a -> UniqueError b Source # (<$) :: a -> UniqueError b -> UniqueError a Source # | |||||
| Exception (UniqueError SrcSpan) Source # | |||||
Defined in PlutusCore.Error Methods toException :: UniqueError SrcSpan -> SomeException Source # fromException :: SomeException -> Maybe (UniqueError SrcSpan) Source # | |||||
| Generic (UniqueError ann) Source # | |||||
Defined in PlutusCore.Error Associated Types
Methods from :: UniqueError ann -> Rep (UniqueError ann) x Source # to :: Rep (UniqueError ann) x -> UniqueError ann Source # | |||||
| Show ann => Show (UniqueError ann) Source # | |||||
Defined in PlutusCore.Error | |||||
| NFData ann => NFData (UniqueError ann) Source # | |||||
Defined in PlutusCore.Error Methods rnf :: UniqueError ann -> () Source # | |||||
| Eq ann => Eq (UniqueError ann) Source # | |||||
Defined in PlutusCore.Error Methods (==) :: UniqueError ann -> UniqueError ann -> Bool Source # (/=) :: UniqueError ann -> UniqueError ann -> Bool Source # | |||||
| Pretty ann => Pretty (UniqueError ann) Source # | |||||
Defined in PlutusCore.Error | |||||
| type Rep (UniqueError ann) Source # | |||||
Defined in PlutusCore.Error type Rep (UniqueError ann) = D1 ('MetaData "UniqueError" "PlutusCore.Error" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (C1 ('MetaCons "MultiplyDefined" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Unique) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann))) :+: (C1 ('MetaCons "IncoherentUsage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Unique) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann))) :+: C1 ('MetaCons "FreeVariable" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Unique) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ann)))) | |||||
data FreeVariableError Source #
We cannot do a correct translation to or from de Bruijn indices if the program is not well-scoped. So we throw an error in such a case.
Constructors
| FreeUnique !Unique | |
| FreeIndex !Index |
Instances
| Exception FreeVariableError Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Methods toException :: FreeVariableError -> SomeException Source # fromException :: SomeException -> Maybe FreeVariableError Source # | |||||
| Generic FreeVariableError Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Associated Types
Methods from :: FreeVariableError -> Rep FreeVariableError x Source # to :: Rep FreeVariableError x -> FreeVariableError Source # | |||||
| Show FreeVariableError Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
| NFData FreeVariableError Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Methods rnf :: FreeVariableError -> () Source # | |||||
| Eq FreeVariableError Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Methods (==) :: FreeVariableError -> FreeVariableError -> Bool Source # (/=) :: FreeVariableError -> FreeVariableError -> Bool Source # | |||||
| Ord FreeVariableError Source # | |||||
Defined in PlutusCore.DeBruijn.Internal Methods compare :: FreeVariableError -> FreeVariableError -> Ordering Source # (<) :: FreeVariableError -> FreeVariableError -> Bool Source # (<=) :: FreeVariableError -> FreeVariableError -> Bool Source # (>) :: FreeVariableError -> FreeVariableError -> Bool Source # (>=) :: FreeVariableError -> FreeVariableError -> Bool Source # max :: FreeVariableError -> FreeVariableError -> FreeVariableError Source # min :: FreeVariableError -> FreeVariableError -> FreeVariableError Source # | |||||
| Pretty FreeVariableError Source # | |||||
Defined in PlutusCore.DeBruijn.Internal | |||||
| type Rep FreeVariableError Source # | |||||
Defined in PlutusCore.DeBruijn.Internal type Rep FreeVariableError = D1 ('MetaData "FreeVariableError" "PlutusCore.DeBruijn.Internal" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (C1 ('MetaCons "FreeUnique" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Unique)) :+: C1 ('MetaCons "FreeIndex" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Index))) | |||||
Quotation and term construction
data QuoteT (m :: Type -> Type) a Source #
The "quotation" monad transformer. Within this monad you can do safe construction of PLC terms using quasiquotation, fresh-name generation, and parsing.
Instances
| MonadTrans QuoteT Source # | |
| MFunctor QuoteT Source # | |
Defined in PlutusCore.Quote | |
| MonadError e m => MonadError e (QuoteT m) Source # | |
Defined in PlutusCore.Quote Methods throwError :: e -> QuoteT m a Source # catchError :: QuoteT m a -> (e -> QuoteT m a) -> QuoteT m a Source # | |
| MonadReader r m => MonadReader r (QuoteT m) Source # | |
| MonadState s m => MonadState s (QuoteT m) Source # | |
| MonadWriter w m => MonadWriter w (QuoteT m) Source # | |
| MonadFix m => MonadFix (QuoteT m) Source # | |
| MonadIO m => MonadIO (QuoteT m) Source # | |
| Monad m => Applicative (QuoteT m) Source # | |
Defined in PlutusCore.Quote | |
| Functor m => Functor (QuoteT m) Source # | |
| Monad m => Monad (QuoteT m) Source # | |
| Monad m => MonadQuote (QuoteT m) Source # | |
runQuoteT :: Monad m => QuoteT m a -> m a Source #
Run a quote from an empty identifier state. Note that the resulting term cannot necessarily
be safely combined with other terms - that should happen inside QuoteT.
class Monad m => MonadQuote (m :: Type -> Type) Source #
A monad that allows lifting of quoted expressions.
Instances
| MonadQuote m => MonadQuote (GenT m) Source # | |
Defined in PlutusCore.Quote | |
| MonadQuote m => MonadQuote (PropertyT m) Source # | |
Defined in PlutusCore.Quote | |
| Monad m => MonadQuote (QuoteT m) Source # | |
| MonadQuote m => MonadQuote (MaybeT m) Source # | |
| MonadQuote m => MonadQuote (RenameT ren m) Source # | |
| MonadQuote m => MonadQuote (ExceptT e m) Source # | |
| MonadQuote m => MonadQuote (ReaderT r m) Source # | |
| MonadQuote m => MonadQuote (StateT s m) Source # | |
| (Stream s, MonadQuote m) => MonadQuote (ParsecT e s m) Source # | |
Defined in PlutusCore.Parser.ParserCommon | |
| MonadQuote m => MonadQuote (NormalizeTypeT m tyname uni ann) Source # | |
Defined in PlutusCore.Normalize.Internal Methods liftQuote :: Quote a -> NormalizeTypeT m tyname uni ann a Source # | |
| MonadQuote m => MonadQuote (SimplifierT name uni fun ann m) Source # | |
Defined in UntypedPlutusCore.Transform.Simplifier Methods liftQuote :: Quote a -> SimplifierT name uni fun ann m a Source # | |
liftQuote :: MonadQuote m => Quote a -> m a Source #
Name generation
freshUnique :: MonadQuote m => m Unique Source #
Get a fresh Unique.
freshTyName :: MonadQuote m => Text -> m TyName Source #
Evaluation
data EvaluationResult a Source #
The parameterized type of results various evaluation engines return.
Constructors
| EvaluationSuccess !a | |
| EvaluationFailure |
Instances
| MonadFail EvaluationResult Source # | |||||
Defined in PlutusCore.Evaluation.Result Methods fail :: String -> EvaluationResult a Source # | |||||
| Foldable EvaluationResult Source # | |||||
Defined in PlutusCore.Evaluation.Result Methods fold :: Monoid m => EvaluationResult m -> m Source # foldMap :: Monoid m => (a -> m) -> EvaluationResult a -> m Source # foldMap' :: Monoid m => (a -> m) -> EvaluationResult a -> m Source # foldr :: (a -> b -> b) -> b -> EvaluationResult a -> b Source # foldr' :: (a -> b -> b) -> b -> EvaluationResult a -> b Source # foldl :: (b -> a -> b) -> b -> EvaluationResult a -> b Source # foldl' :: (b -> a -> b) -> b -> EvaluationResult a -> b Source # foldr1 :: (a -> a -> a) -> EvaluationResult a -> a Source # foldl1 :: (a -> a -> a) -> EvaluationResult a -> a Source # toList :: EvaluationResult a -> [a] Source # null :: EvaluationResult a -> Bool Source # length :: EvaluationResult a -> Int Source # elem :: Eq a => a -> EvaluationResult a -> Bool Source # maximum :: Ord a => EvaluationResult a -> a Source # minimum :: Ord a => EvaluationResult a -> a Source # sum :: Num a => EvaluationResult a -> a Source # product :: Num a => EvaluationResult a -> a Source # | |||||
| Traversable EvaluationResult Source # | |||||
Defined in PlutusCore.Evaluation.Result Methods traverse :: Applicative f => (a -> f b) -> EvaluationResult a -> f (EvaluationResult b) Source # sequenceA :: Applicative f => EvaluationResult (f a) -> f (EvaluationResult a) Source # mapM :: Monad m => (a -> m b) -> EvaluationResult a -> m (EvaluationResult b) Source # sequence :: Monad m => EvaluationResult (m a) -> m (EvaluationResult a) Source # | |||||
| Alternative EvaluationResult Source # | |||||
Defined in PlutusCore.Evaluation.Result Methods empty :: EvaluationResult a Source # (<|>) :: EvaluationResult a -> EvaluationResult a -> EvaluationResult a Source # some :: EvaluationResult a -> EvaluationResult [a] Source # many :: EvaluationResult a -> EvaluationResult [a] Source # | |||||
| Applicative EvaluationResult Source # | |||||
Defined in PlutusCore.Evaluation.Result Methods pure :: a -> EvaluationResult a Source # (<*>) :: EvaluationResult (a -> b) -> EvaluationResult a -> EvaluationResult b Source # liftA2 :: (a -> b -> c) -> EvaluationResult a -> EvaluationResult b -> EvaluationResult c Source # (*>) :: EvaluationResult a -> EvaluationResult b -> EvaluationResult b Source # (<*) :: EvaluationResult a -> EvaluationResult b -> EvaluationResult a Source # | |||||
| Functor EvaluationResult Source # | |||||
Defined in PlutusCore.Evaluation.Result Methods fmap :: (a -> b) -> EvaluationResult a -> EvaluationResult b Source # (<$) :: a -> EvaluationResult b -> EvaluationResult a Source # | |||||
| Monad EvaluationResult Source # | |||||
Defined in PlutusCore.Evaluation.Result Methods (>>=) :: EvaluationResult a -> (a -> EvaluationResult b) -> EvaluationResult b Source # (>>) :: EvaluationResult a -> EvaluationResult b -> EvaluationResult b Source # return :: a -> EvaluationResult a Source # | |||||
| MonadError () EvaluationResult Source # | |||||
Defined in PlutusCore.Evaluation.Result Methods throwError :: () -> EvaluationResult a Source # catchError :: EvaluationResult a -> (() -> EvaluationResult a) -> EvaluationResult a Source # | |||||
| KnownTypeAst tyname uni a => KnownTypeAst tyname uni (EvaluationResult a :: Type) Source # | |||||
Defined in PlutusCore.Builtin.KnownTypeAst Associated Types
| |||||
| (TypeError ('Text "Use \8216BuiltinResult\8217 instead of \8216EvaluationResult\8217") :: Constraint, uni ~ UniOf val) => MakeKnownIn uni val (EvaluationResult a) Source # | |||||
Defined in PlutusCore.Builtin.KnownType Methods makeKnown :: EvaluationResult a -> BuiltinResult val Source # | |||||
| (TypeError ('Text "Use \8216BuiltinResult\8217 instead of \8216EvaluationResult\8217") :: Constraint, uni ~ UniOf val) => ReadKnownIn uni val (EvaluationResult a) Source # | |||||
Defined in PlutusCore.Builtin.KnownType Methods readKnown :: val -> ReadKnownM (EvaluationResult a) Source # | |||||
| PrettyBy config a => PrettyBy config (EvaluationResult a) Source # | |||||
Defined in PlutusCore.Evaluation.Result Methods prettyBy :: config -> EvaluationResult a -> Doc ann # prettyListBy :: config -> [EvaluationResult a] -> Doc ann # | |||||
| Generic (EvaluationResult a) Source # | |||||
Defined in PlutusCore.Evaluation.Result Associated Types
Methods from :: EvaluationResult a -> Rep (EvaluationResult a) x Source # to :: Rep (EvaluationResult a) x -> EvaluationResult a Source # | |||||
| Show a => Show (EvaluationResult a) Source # | |||||
Defined in PlutusCore.Evaluation.Result | |||||
| NFData a => NFData (EvaluationResult a) Source # | |||||
Defined in PlutusCore.Evaluation.Result Methods rnf :: EvaluationResult a -> () Source # | |||||
| Eq a => Eq (EvaluationResult a) Source # | |||||
Defined in PlutusCore.Evaluation.Result Methods (==) :: EvaluationResult a -> EvaluationResult a -> Bool Source # (/=) :: EvaluationResult a -> EvaluationResult a -> Bool Source # | |||||
| PrettyClassic a => Pretty (EvaluationResult a) Source # | |||||
Defined in PlutusCore.Evaluation.Result | |||||
| type ToBinds uni acc (EvaluationResult a :: Type) Source # | |||||
Defined in PlutusCore.Builtin.KnownTypeAst | |||||
| type ToHoles uni _1 (EvaluationResult a :: Type) Source # | |||||
Defined in PlutusCore.Builtin.KnownTypeAst | |||||
| type IsBuiltin uni (EvaluationResult a :: Type) Source # | |||||
Defined in PlutusCore.Builtin.KnownTypeAst | |||||
| type Rep (EvaluationResult a) Source # | |||||
Defined in PlutusCore.Evaluation.Result type Rep (EvaluationResult a) = D1 ('MetaData "EvaluationResult" "PlutusCore.Evaluation.Result" "plutus-core-1.60.0.0-LXFqBsoUlXsJIEqLytHte7" 'False) (C1 ('MetaCons "EvaluationSuccess" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)) :+: C1 ('MetaCons "EvaluationFailure" 'PrefixI 'False) (U1 :: Type -> Type)) | |||||
Combining programs
applyProgram :: forall m a tyname name (uni :: Type -> Type) fun. (MonadError ApplyProgramError m, Semigroup a) => Program tyname name uni fun a -> Program tyname name uni fun a -> m (Program tyname name uni fun a) Source #
Applies one program to another. Fails if the versions do not match and tries to merge annotations.
Benchmarking
termAstSize :: forall tyname name (uni :: Type -> Type) fun ann. Term tyname name uni fun ann -> AstSize Source #
Count the number of AST nodes in a term.
typeAstSize :: forall tyname (uni :: Type -> Type) ann. Type tyname uni ann -> AstSize Source #
Count the number of AST nodes in a type.
kindAstSize :: Kind a -> AstSize Source #
Count the number of AST nodes in a kind.
>>>kindAstSize $ Type ()AstSize {unAstSize = 1}>>>kindAstSize $ KindArrow () (KindArrow () (Type ()) (Type ())) (Type ())AstSize {unAstSize = 5}