Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Kind ann
- data Type tyname uni 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)
- data Term tyname name uni fun ann
- = Var ann name
- | TyAbs ann tyname (Kind ann) (Term tyname name uni fun ann)
- | 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)
- | Constant ann (Some (ValueOf uni))
- | Builtin ann fun
- | TyInst ann (Term tyname name uni fun ann) (Type tyname uni ann)
- | Unwrap ann (Term tyname name uni fun ann)
- | IWrap ann (Type tyname uni ann) (Type tyname uni ann) (Term tyname name uni fun ann)
- | Error ann (Type tyname uni ann)
- data Version ann = Version ann Natural Natural Natural
- data Program tyname name uni fun ann = Program {}
- type family UniOf a :: Type -> Type
- newtype Normalized a = Normalized {
- unNormalized :: a
- data TyVarDecl tyname ann = TyVarDecl {
- _tyVarDeclAnn :: ann
- _tyVarDeclName :: tyname
- _tyVarDeclKind :: Kind ann
- data VarDecl tyname name uni fun ann = VarDecl {
- _varDeclAnn :: ann
- _varDeclName :: name
- _varDeclType :: Type tyname uni ann
- data TyDecl tyname uni ann = TyDecl {
- _tyDeclAnn :: ann
- _tyDeclType :: Type tyname uni ann
- _tyDeclKind :: Kind ann
- tyDeclVar :: TyVarDecl tyname ann -> TyDecl tyname uni ann
- type family HasUniques a :: Constraint
- newtype Binder name = Binder {
- unBinder :: name
- defaultVersion :: ann -> Version ann
- termAnn :: Term tyname name uni fun ann -> ann
- typeAnn :: Type tyname uni ann -> ann
- mapFun :: (fun -> fun') -> Term tyname name uni fun ann -> Term tyname name uni fun' ann
- tyVarDeclAnn :: forall tyname ann. Lens' (TyVarDecl tyname ann) ann
- tyVarDeclName :: forall tyname ann tyname. Lens (TyVarDecl tyname ann) (TyVarDecl tyname ann) tyname tyname
- tyVarDeclKind :: forall tyname ann. Lens' (TyVarDecl tyname ann) (Kind ann)
- varDeclAnn :: forall tyname name uni k (fun :: k) ann k (fun :: k). Lens (VarDecl tyname name uni (fun :: k) ann) (VarDecl tyname name uni (fun :: k) ann) ann ann
- varDeclName :: forall tyname name uni k (fun :: k) ann name k (fun :: k). Lens (VarDecl tyname name uni (fun :: k) ann) (VarDecl tyname name uni (fun :: k) ann) name name
- varDeclType :: forall tyname name uni k (fun :: k) ann tyname uni k (fun :: k). Lens (VarDecl tyname name uni (fun :: k) ann) (VarDecl tyname name uni (fun :: k) ann) (Type tyname uni ann) (Type tyname uni ann)
- tyDeclAnn :: forall tyname uni ann. Lens' (TyDecl tyname uni ann) ann
- tyDeclType :: forall tyname uni ann tyname uni. Lens (TyDecl tyname uni ann) (TyDecl tyname uni ann) (Type tyname uni ann) (Type tyname uni ann)
- tyDeclKind :: forall tyname uni ann. Lens' (TyDecl tyname uni ann) (Kind ann)
- progAnn :: forall tyname name uni fun ann. Lens' (Program tyname name uni fun ann) ann
- progVer :: forall tyname name uni fun ann. Lens' (Program tyname name uni fun ann) (Version ann)
- progTerm :: forall tyname name uni fun ann tyname name uni fun. Lens (Program tyname name uni fun ann) (Program tyname name uni fun ann) (Term tyname name uni fun ann) (Term tyname name uni fun ann)
- kindSubkinds :: Traversal' (Kind ann) (Kind ann)
- kindSubkindsDeep :: Fold (Kind ann) (Kind ann)
- tyVarDeclSubkinds :: Traversal' (TyVarDecl tyname a) (Kind a)
- typeTyBinds :: Traversal' (Type tyname uni ann) tyname
- typeTyVars :: Traversal' (Type tyname uni ann) tyname
- typeUniques :: HasUniques (Type tyname uni ann) => Traversal' (Type tyname uni ann) Unique
- typeSubkinds :: Traversal' (Type tyname uni ann) (Kind ann)
- typeSubtypes :: Traversal' (Type tyname uni ann) (Type tyname uni ann)
- typeSubtypesDeep :: Fold (Type tyname uni ann) (Type tyname uni ann)
- varDeclSubtypes :: Traversal' (VarDecl tyname name uni fun a) (Type tyname uni a)
- termTyBinds :: Traversal' (Term tyname name uni fun ann) tyname
- termBinds :: Traversal' (Term tyname name uni fun ann) name
- termVars :: Traversal' (Term tyname name uni fun ann) name
- termUniques :: HasUniques (Term tyname name uni fun ann) => Traversal' (Term tyname name uni fun ann) Unique
- termSubkinds :: Traversal' (Term tyname name uni fun ann) (Kind ann)
- termSubtypes :: Traversal' (Term tyname name uni fun ann) (Type tyname uni ann)
- termSubtypesDeep :: Fold (Term tyname name uni fun ann) (Type tyname uni ann)
- termSubterms :: Traversal' (Term tyname name uni fun ann) (Term tyname name uni fun ann)
- termSubtermsDeep :: Fold (Term tyname name uni fun ann) (Term tyname name uni fun ann)
- typeUniquesDeep :: HasUniques (Type tyname uni ann) => Fold (Type tyname uni ann) Unique
- termUniquesDeep :: HasUniques (Term tyname name uni fun ann) => Fold (Term tyname name uni fun ann) Unique
- data TermF (tyname :: Type) (name :: Type) (uni :: Type -> Type) (fun :: Type) (ann :: Type) r
- = VarF ann name
- | TyAbsF ann tyname (Kind ann) r
- | LamAbsF ann name (Type tyname uni ann) r
- | ApplyF ann r r
- | ConstantF ann (Some (ValueOf uni))
- | BuiltinF ann fun
- | TyInstF ann r (Type tyname uni ann)
- | UnwrapF ann r
- | IWrapF ann (Type tyname uni ann) (Type tyname uni ann) r
- | ErrorF ann (Type tyname uni ann)
- data TypeF (tyname :: Type) (uni :: Type -> Type) (ann :: Type) r
- = TyVarF ann tyname
- | TyFunF ann r r
- | TyIFixF ann r r
- | TyForallF ann tyname (Kind ann) r
- | TyBuiltinF ann (SomeTypeIn uni)
- | TyLamF ann tyname (Kind ann) r
- | TyAppF ann r r
- data KindF (ann :: Type) r
- = TypeF ann
- | KindArrowF ann r r
Documentation
Instances
Functor Kind Source # | |
CollectScopeInfo Kind Source # | |
Defined in PlutusCore.Core.Instance.Scoping | |
EstablishScoping Kind Source # | |
Defined in PlutusCore.Core.Instance.Scoping | |
Lift ann => Lift (Kind ann :: Type) Source # | |
DefaultPrettyPlcStrategy (Kind ann) => PrettyBy PrettyConfigPlc (Kind ann) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Plc prettyBy :: PrettyConfigPlc -> Kind ann -> Doc ann0 # prettyListBy :: PrettyConfigPlc -> [Kind ann] -> Doc ann0 # | |
Eq ann => Eq (Kind ann) Source # | |
Show ann => Show (Kind ann) Source # | |
Generic (Kind ann) Source # | |
NFData ann => NFData (Kind ann) Source # | |
Defined in PlutusCore.Core.Type | |
Hashable ann => Hashable (Kind ann) Source # | |
Defined in PlutusCore.Core.Type | |
Pretty ann => Pretty (Kind ann) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Default | |
Corecursive (Kind ann) | |
Defined in PlutusCore.Core.Instance.Recursive embed :: Base (Kind ann) (Kind ann) -> Kind ann ana :: (a -> Base (Kind ann) a) -> a -> Kind ann apo :: (a -> Base (Kind ann) (Either (Kind ann) a)) -> a -> Kind ann postpro :: Recursive (Kind ann) => (forall b. Base (Kind ann) b -> Base (Kind ann) b) -> (a -> Base (Kind ann) a) -> a -> Kind ann gpostpro :: (Recursive (Kind ann), Monad m) => (forall b. m (Base (Kind ann) b) -> Base (Kind ann) (m b)) -> (forall c. Base (Kind ann) c -> Base (Kind ann) c) -> (a -> Base (Kind ann) (m a)) -> a -> Kind ann | |
Recursive (Kind ann) | |
Defined in PlutusCore.Core.Instance.Recursive project :: Kind ann -> Base (Kind ann) (Kind ann) cata :: (Base (Kind ann) a -> a) -> Kind ann -> a para :: (Base (Kind ann) (Kind ann, a) -> a) -> Kind ann -> a gpara :: (Corecursive (Kind ann), Comonad w) => (forall b. Base (Kind ann) (w b) -> w (Base (Kind ann) b)) -> (Base (Kind ann) (EnvT (Kind ann) w a) -> a) -> Kind ann -> a prepro :: Corecursive (Kind ann) => (forall b. Base (Kind ann) b -> Base (Kind ann) b) -> (Base (Kind ann) a -> a) -> Kind ann -> a gprepro :: (Corecursive (Kind ann), Comonad w) => (forall b. Base (Kind ann) (w b) -> w (Base (Kind ann) b)) -> (forall c. Base (Kind ann) c -> Base (Kind ann) c) -> (Base (Kind ann) (w a) -> a) -> Kind ann -> a | |
Flat ann => Flat (Kind ann) | |
PrettyBy (PrettyConfigReadable configName) (Kind a) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Readable prettyBy :: PrettyConfigReadable configName -> Kind a -> Doc ann # prettyListBy :: PrettyConfigReadable configName -> [Kind a] -> Doc ann # | |
Pretty ann => PrettyBy (PrettyConfigClassic configName) (Kind ann) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Classic prettyBy :: PrettyConfigClassic configName -> Kind ann -> Doc ann0 # prettyListBy :: PrettyConfigClassic configName -> [Kind ann] -> Doc ann0 # | |
type Rep (Kind ann) Source # | |
Defined in PlutusCore.Core.Type type Rep (Kind ann) = D1 ('MetaData "Kind" "PlutusCore.Core.Type" "plutus-core-1.0.0.1-6wMiyL0yerXJu56t8zBoKx" '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 Base (Kind ann) | |
Defined in PlutusCore.Core.Instance.Recursive | |
type HasUniques (Kind ann) Source # | |
Defined in PlutusCore.Core.Type |
data Type tyname uni ann Source #
A Type
assigned to expressions.
TyVar ann tyname | |
TyFun ann (Type tyname uni ann) (Type tyname uni ann) | |
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) | |
TyBuiltin ann (SomeTypeIn uni) | Builtin type |
TyLam ann tyname (Kind ann) (Type tyname uni ann) | |
TyApp ann (Type tyname uni ann) (Type tyname uni ann) |
Instances
tyname ~ TyName => Reference TyName (Type tyname uni) Source # | |
Defined in PlutusCore.Core.Instance.Scoping 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 prettyBy :: PrettyConfigPlc -> Type tyname uni ann -> Doc ann0 # prettyListBy :: PrettyConfigPlc -> [Type tyname uni ann] -> Doc ann0 # | |
(PrettyReadableBy configName tyname, GShow uni) => PrettyBy (PrettyConfigReadable configName) (Type tyname uni a) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Readable prettyBy :: PrettyConfigReadable configName -> Type tyname uni a -> Doc ann # prettyListBy :: PrettyConfigReadable configName -> [Type tyname uni a] -> Doc ann # | |
(PrettyClassicBy configName tyname, GShow uni, Pretty ann) => PrettyBy (PrettyConfigClassic configName) (Type tyname uni ann) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Classic prettyBy :: PrettyConfigClassic configName -> Type tyname uni ann -> Doc ann0 # prettyListBy :: PrettyConfigClassic configName -> [Type tyname uni ann] -> Doc ann0 # | |
Functor (Type tyname uni) Source # | |
tyname ~ TyName => CollectScopeInfo (Type tyname uni) Source # | |
Defined in PlutusCore.Core.Instance.Scoping collectScopeInfo :: Type tyname uni NameAnn -> ScopeErrorOrInfo Source # | |
tyname ~ TyName => EstablishScoping (Type tyname uni) Source # | |
Defined in PlutusCore.Core.Instance.Scoping | |
(GEq uni, Eq ann) => Eq (Type TyName uni ann) Source # | |
(GEq uni, Closed uni, Everywhere uni Eq, Eq ann) => Eq (Type TyDeBruijn uni ann) Source # | |
Defined in PlutusCore.Core.Instance.Eq (==) :: 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 ann) => Eq (Type NamedTyDeBruijn uni ann) Source # | |
Defined in PlutusCore.Core.Instance.Eq (==) :: Type NamedTyDeBruijn uni ann -> Type NamedTyDeBruijn uni ann -> Bool Source # (/=) :: Type NamedTyDeBruijn uni ann -> Type NamedTyDeBruijn uni ann -> Bool Source # | |
(Show ann, Show tyname, GShow uni) => Show (Type tyname uni ann) Source # | |
Generic (Type tyname uni ann) Source # | |
(NFData ann, NFData tyname, Closed uni) => NFData (Type tyname uni ann) Source # | |
Defined in PlutusCore.Core.Type | |
(PrettyClassic tyname, GShow uni, Pretty ann) => Pretty (Type tyname uni ann) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Default | |
Corecursive (Type tyname uni ann) | |
Defined in PlutusCore.Core.Instance.Recursive embed :: Base (Type tyname uni ann) (Type tyname uni ann) -> Type tyname uni ann ana :: (a -> Base (Type tyname uni ann) a) -> a -> Type tyname uni ann apo :: (a -> Base (Type tyname uni ann) (Either (Type tyname uni ann) a)) -> a -> Type tyname uni ann postpro :: Recursive (Type tyname uni ann) => (forall b. Base (Type tyname uni ann) b -> Base (Type tyname uni ann) b) -> (a -> Base (Type tyname uni ann) a) -> a -> Type tyname uni ann gpostpro :: (Recursive (Type tyname uni ann), Monad m) => (forall b. m (Base (Type tyname uni ann) b) -> Base (Type tyname uni ann) (m b)) -> (forall c. Base (Type tyname uni ann) c -> Base (Type tyname uni ann) c) -> (a -> Base (Type tyname uni ann) (m a)) -> a -> Type tyname uni ann | |
Recursive (Type tyname uni ann) | |
Defined in PlutusCore.Core.Instance.Recursive project :: Type tyname uni ann -> Base (Type tyname uni ann) (Type tyname uni ann) cata :: (Base (Type tyname uni ann) a -> a) -> Type tyname uni ann -> a para :: (Base (Type tyname uni ann) (Type tyname uni ann, a) -> a) -> Type tyname uni ann -> a gpara :: (Corecursive (Type tyname uni ann), Comonad w) => (forall b. Base (Type tyname uni ann) (w b) -> w (Base (Type tyname uni ann) b)) -> (Base (Type tyname uni ann) (EnvT (Type tyname uni ann) w a) -> a) -> Type tyname uni ann -> a prepro :: Corecursive (Type tyname uni ann) => (forall b. Base (Type tyname uni ann) b -> Base (Type tyname uni ann) b) -> (Base (Type tyname uni ann) a -> a) -> Type tyname uni ann -> a gprepro :: (Corecursive (Type tyname uni ann), Comonad w) => (forall b. Base (Type tyname uni ann) (w b) -> w (Base (Type tyname uni ann) b)) -> (forall c. Base (Type tyname uni ann) c -> Base (Type tyname uni ann) c) -> (Base (Type tyname uni ann) (w a) -> a) -> Type tyname uni ann -> a | |
(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 | |
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.0.0.1-6wMiyL0yerXJu56t8zBoKx" '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))))))) | |
type Base (Type tyname uni ann) | |
Defined in PlutusCore.Core.Instance.Recursive | |
type HasUniques (Type tyname uni ann) Source # | |
Defined in PlutusCore.Core.Type |
data Term tyname name uni fun ann Source #
Var ann name | a named variable |
TyAbs ann tyname (Kind ann) (Term tyname name uni fun ann) | |
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) | |
Constant ann (Some (ValueOf uni)) | a constant term |
Builtin ann fun | |
TyInst ann (Term tyname name uni fun ann) (Type tyname uni ann) | |
Unwrap ann (Term tyname name uni fun ann) | |
IWrap ann (Type tyname uni ann) (Type tyname uni ann) (Term tyname name uni fun ann) | |
Error ann (Type tyname uni ann) |
Instances
tyname ~ TyName => Reference TyName (Term tyname name uni fun) Source # | |
Defined in PlutusCore.Core.Instance.Scoping referenceVia :: (forall name0. ToScopedName name0 => name0 -> NameAnn) -> TyName -> Term tyname name uni fun NameAnn -> Term tyname name uni fun NameAnn Source # | |
name ~ Name => Reference Name (Term tyname name uni fun) Source # | |
Defined in PlutusCore.Core.Instance.Scoping referenceVia :: (forall name0. ToScopedName name0 => name0 -> NameAnn) -> Name -> 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 prettyBy :: PrettyConfigPlc -> Term tyname name uni fun ann -> Doc ann0 # prettyListBy :: PrettyConfigPlc -> [Term tyname name uni fun ann] -> Doc ann0 # | |
(PrettyReadableBy configName tyname, PrettyReadableBy configName name, GShow uni, Closed uni, Everywhere uni PrettyConst, Pretty fun) => PrettyBy (PrettyConfigReadable configName) (Term tyname name uni fun a) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Readable prettyBy :: PrettyConfigReadable configName -> Term tyname name uni fun a -> Doc ann # prettyListBy :: PrettyConfigReadable configName -> [Term tyname name uni fun a] -> Doc ann # | |
(PrettyClassicBy configName tyname, PrettyClassicBy configName name, GShow uni, Closed uni, Everywhere uni PrettyConst, Pretty fun, Pretty ann) => PrettyBy (PrettyConfigClassic configName) (Term tyname name uni fun ann) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Classic prettyBy :: PrettyConfigClassic configName -> Term tyname name uni fun ann -> Doc ann0 # prettyListBy :: PrettyConfigClassic configName -> [Term tyname name uni fun ann] -> Doc ann0 # | |
AsTypeError (Error uni fun ann) (Term TyName Name uni fun ()) uni fun ann Source # | |
Defined in PlutusCore.Error _TypeError :: Prism' (Error uni fun ann) (TypeError (Term TyName Name uni fun ()) uni fun ann) Source # _KindMismatch :: Prism' (Error uni fun ann) (ann, Type TyName uni (), Kind (), Kind ()) Source # _TypeMismatch :: Prism' (Error uni fun ann) (ann, Term TyName Name uni fun (), Type TyName uni (), Normalized (Type TyName uni ())) Source # _FreeTypeVariableE :: Prism' (Error uni fun ann) (ann, TyName) Source # _FreeVariableE :: Prism' (Error uni fun ann) (ann, Name) Source # _UnknownBuiltinFunctionE :: Prism' (Error uni fun ann) (ann, fun) Source # | |
Functor (Term tyname name uni fun) Source # | |
(tyname ~ TyName, name ~ Name) => CollectScopeInfo (Term tyname name uni fun) Source # | |
Defined in PlutusCore.Core.Instance.Scoping 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 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 # termLet :: ann -> TermDef (Term tyname name uni fun) tyname name uni fun 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 # | |
(GEq uni, Closed uni, Everywhere uni Eq, Eq fun, Eq ann) => Eq (Term TyName Name uni fun ann) 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 (==) :: 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 NamedTyDeBruijn NamedDeBruijn uni fun ann) Source # | |
Defined in PlutusCore.Core.Instance.Eq (==) :: 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 # | |
(Everywhere uni Show, GShow uni, Closed uni, Show ann, Show name, Show tyname, Show fun) => Show (Term tyname name uni fun ann) Source # | |
Generic (Term tyname name uni fun ann) Source # | |
(Everywhere uni NFData, Closed uni, NFData ann, NFData name, NFData tyname, NFData fun) => NFData (Term tyname name uni fun ann) Source # | |
Defined in PlutusCore.Core.Type | |
(PrettyClassic tyname, PrettyClassic name, GShow uni, Closed uni, Everywhere uni PrettyConst, Pretty fun, Pretty ann) => Pretty (Term tyname name uni fun ann) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Default | |
Corecursive (Term tyname name uni fun ann) | |
Defined in PlutusCore.Core.Instance.Recursive embed :: Base (Term tyname name uni fun ann) (Term tyname name uni fun ann) -> Term tyname name uni fun ann ana :: (a -> Base (Term tyname name uni fun ann) a) -> a -> Term tyname name uni fun ann apo :: (a -> Base (Term tyname name uni fun ann) (Either (Term tyname name uni fun ann) a)) -> a -> Term tyname name uni fun ann postpro :: Recursive (Term tyname name uni fun ann) => (forall b. Base (Term tyname name uni fun ann) b -> Base (Term tyname name uni fun ann) b) -> (a -> Base (Term tyname name uni fun ann) a) -> a -> Term tyname name uni fun ann gpostpro :: (Recursive (Term tyname name uni fun ann), Monad m) => (forall b. m (Base (Term tyname name uni fun ann) b) -> Base (Term tyname name uni fun ann) (m b)) -> (forall c. Base (Term tyname name uni fun ann) c -> Base (Term tyname name uni fun ann) c) -> (a -> Base (Term tyname name uni fun ann) (m a)) -> a -> Term tyname name uni fun ann | |
Recursive (Term tyname name uni fun ann) | |
Defined in PlutusCore.Core.Instance.Recursive project :: Term tyname name uni fun ann -> Base (Term tyname name uni fun ann) (Term tyname name uni fun ann) cata :: (Base (Term tyname name uni fun ann) a -> a) -> Term tyname name uni fun ann -> a para :: (Base (Term tyname name uni fun ann) (Term tyname name uni fun ann, a) -> a) -> Term tyname name uni fun ann -> a gpara :: (Corecursive (Term tyname name uni fun ann), Comonad w) => (forall b. Base (Term tyname name uni fun ann) (w b) -> w (Base (Term tyname name uni fun ann) b)) -> (Base (Term tyname name uni fun ann) (EnvT (Term tyname name uni fun ann) w a) -> a) -> Term tyname name uni fun ann -> a prepro :: Corecursive (Term tyname name uni fun ann) => (forall b. Base (Term tyname name uni fun ann) b -> Base (Term tyname name uni fun ann) b) -> (Base (Term tyname name uni fun ann) a -> a) -> Term tyname name uni fun ann -> a gprepro :: (Corecursive (Term tyname name uni fun ann), Comonad w) => (forall b. Base (Term tyname name uni fun ann) (w b) -> w (Base (Term tyname name uni fun ann) b)) -> (forall c. Base (Term tyname name uni fun ann) c -> Base (Term tyname name uni fun ann) c) -> (Base (Term tyname name uni fun ann) (w a) -> a) -> Term tyname name uni fun ann -> a | |
(Closed uni, Everywhere uni Flat, Flat fun, Flat ann, Flat tyname, Flat name) => Flat (Term tyname name uni fun ann) | |
HasUniques (Term tyname name uni fun ann) => Rename (Term tyname name uni fun ann) Source # | |
Defined in PlutusCore.Rename | |
HasConstant (Term TyName Name uni fun ()) Source # | |
Defined in PlutusCore.Builtin.HasConstant | |
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.0.0.1-6wMiyL0yerXJu56t8zBoKx" '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 "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 "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 "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 "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 "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 "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 "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 Base (Term tyname name uni fun ann) | |
Defined in PlutusCore.Core.Instance.Recursive | |
type UniOf (Term 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) |
Version of Plutus Core to be used for the program.
Instances
data Program tyname name uni fun ann Source #
Instances
DefaultPrettyPlcStrategy (Program tyname name uni fun ann) => PrettyBy PrettyConfigPlc (Program tyname name uni fun ann) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Plc prettyBy :: PrettyConfigPlc -> Program tyname name uni fun ann -> Doc ann0 # prettyListBy :: PrettyConfigPlc -> [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 prettyBy :: PrettyConfigReadable configName -> Program tyname name uni fun a -> Doc ann # prettyListBy :: PrettyConfigReadable configName -> [Program tyname name uni fun a] -> Doc ann # | |
(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 prettyBy :: PrettyConfigClassic configName -> Program tyname name uni fun ann -> Doc ann0 # prettyListBy :: PrettyConfigClassic configName -> [Program tyname name uni fun ann] -> Doc ann0 # | |
Functor (Program tyname name uni fun) Source # | |
(tyname ~ TyName, name ~ Name) => CollectScopeInfo (Program tyname name uni fun) Source # | |
Defined in PlutusCore.Core.Instance.Scoping 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 | |
(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 # | |
(Everywhere uni Show, GShow uni, Closed uni, Show ann, Show name, Show tyname, Show fun) => Show (Program tyname name uni fun ann) Source # | |
Generic (Program tyname name uni fun ann) Source # | |
(Everywhere uni NFData, Closed uni, NFData ann, NFData name, NFData tyname, NFData fun) => NFData (Program tyname name uni fun ann) Source # | |
Defined in PlutusCore.Core.Type | |
(PrettyClassic tyname, PrettyClassic name, GShow uni, Closed uni, Everywhere uni PrettyConst, Pretty fun, Pretty ann) => Pretty (Program tyname name uni fun ann) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Default | |
(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 | |
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.0.0.1-6wMiyL0yerXJu56t8zBoKx" 'False) (C1 ('MetaCons "Program" 'PrefixI 'True) (S1 ('MetaSel ('Just "_progAnn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: (S1 ('MetaSel ('Just "_progVer") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Version ann)) :*: 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 |
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 (CkValue uni fun) Source # | |
Defined in PlutusCore.Evaluation.Machine.Ck | |
type UniOf (CekValue uni fun) 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 | |
type UniOf (Term tyname name uni fun ann) Source # | |
Defined in PlutusIR.Core.Type |
newtype Normalized a Source #
Normalized | |
|
Instances
data TyVarDecl tyname ann Source #
A "type variable declaration", i.e. a name and a kind for a type variable.
TyVarDecl | |
|
Instances
data VarDecl tyname name uni fun ann Source #
A "variable declaration", i.e. a name and a type for a variable.
VarDecl | |
|
Instances
tyname ~ TyName => Reference TyName (VarDecl tyname name uni fun) Source # | |
Defined in PlutusIR.Core.Instance.Scoping referenceVia :: (forall name0. ToScopedName name0 => name0 -> NameAnn) -> TyName -> VarDecl tyname name uni fun NameAnn -> VarDecl tyname name uni fun NameAnn Source # | |
(PrettyClassicBy configName tyname, PrettyClassicBy configName name, GShow uni, Everywhere uni PrettyConst, Pretty ann) => PrettyBy (PrettyConfigClassic configName) (VarDecl tyname name uni fun ann) Source # | |
Defined in PlutusIR.Core.Instance.Pretty prettyBy :: PrettyConfigClassic configName -> VarDecl tyname name uni fun ann -> Doc ann0 # prettyListBy :: PrettyConfigClassic configName -> [VarDecl tyname name uni fun ann] -> Doc ann0 # | |
Functor (VarDecl tyname name uni fun) Source # | |
(tyname ~ TyName, name ~ Name) => CollectScopeInfo (VarDecl tyname name uni fun) Source # | |
Defined in PlutusIR.Core.Instance.Scoping collectScopeInfo :: VarDecl tyname name uni fun NameAnn -> ScopeErrorOrInfo Source # | |
(Show ann, Show name, Show tyname, GShow uni) => Show (VarDecl tyname name uni fun ann) Source # | |
Generic (VarDecl tyname name uni fun ann) Source # | |
(PrettyClassic tyname, PrettyClassic name, GShow uni, Everywhere uni PrettyConst, Pretty ann) => Pretty (VarDecl tyname name uni fun ann) Source # | |
Defined in PlutusIR.Core.Instance.Pretty | |
(Closed uni, Flat fun, Flat ann, Flat tyname, Flat name) => Flat (VarDecl tyname name uni fun ann) | |
HasUnique name TermUnique => HasUnique (VarDecl tyname name uni fun ann) TermUnique Source # | |
Defined in PlutusCore.Core.Type | |
Reference name t => Reference (VarDecl tyname name uni fun ann) t Source # | |
Defined in PlutusIR.Core.Instance.Scoping referenceVia :: (forall name0. ToScopedName name0 => name0 -> NameAnn) -> VarDecl tyname name uni fun ann -> t NameAnn -> t NameAnn Source # | |
type Rep (VarDecl tyname name uni fun ann) Source # | |
Defined in PlutusCore.Core.Type type Rep (VarDecl tyname name uni fun ann) = D1 ('MetaData "VarDecl" "PlutusCore.Core.Type" "plutus-core-1.0.0.1-6wMiyL0yerXJu56t8zBoKx" 'False) (C1 ('MetaCons "VarDecl" 'PrefixI 'True) (S1 ('MetaSel ('Just "_varDeclAnn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: (S1 ('MetaSel ('Just "_varDeclName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 name) :*: S1 ('MetaSel ('Just "_varDeclType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann))))) |
data TyDecl tyname uni ann Source #
A "type declaration", i.e. a kind for a type.
TyDecl | |
|
Instances
Functor (TyDecl tyname uni) Source # | |
(Show ann, Show tyname, GShow uni) => Show (TyDecl tyname uni ann) Source # | |
Generic (TyDecl tyname uni ann) Source # | |
type Rep (TyDecl tyname uni ann) Source # | |
Defined in PlutusCore.Core.Type type Rep (TyDecl tyname uni ann) = D1 ('MetaData "TyDecl" "PlutusCore.Core.Type" "plutus-core-1.0.0.1-6wMiyL0yerXJu56t8zBoKx" 'False) (C1 ('MetaCons "TyDecl" 'PrefixI 'True) (S1 ('MetaSel ('Just "_tyDeclAnn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: (S1 ('MetaSel ('Just "_tyDeclType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type tyname uni ann)) :*: S1 ('MetaSel ('Just "_tyDeclKind") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Kind ann))))) |
type family HasUniques a :: Constraint 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) | |
type HasUniques (Program tyname name uni fun ann) Source # | |
Defined in PlutusIR.Core.Type | |
type HasUniques (Term tyname name uni fun ann) Source # | |
Defined in PlutusIR.Core.Type type HasUniques (Term tyname name uni fun ann) = (HasUnique tyname TypeUnique, HasUnique name TermUnique) |
This is a wrapper to mark the place where the binder is introduced (i.e. LamAbs/TyAbs)
and not where it is actually used (TyVar/Var..).
This marking allows us to skip the (de)serialization of binders at LamAbs/TyAbs positions
iff name
is DeBruijn-encoded (level or index). See for example the instance of Flat
Instances
Flat (Binder TyName) | |
Flat (Binder Name) | |
Flat (Binder NamedTyDeBruijn) | |
Defined in PlutusCore.Flat encode :: Binder NamedTyDeBruijn -> Encoding decode :: Get (Binder NamedTyDeBruijn) size :: Binder NamedTyDeBruijn -> NumBits -> NumBits | |
Flat (Binder DeBruijn) | |
Flat (Binder FakeNamedDeBruijn) | |
Defined in PlutusCore.Flat encode :: Binder FakeNamedDeBruijn -> Encoding decode :: Get (Binder FakeNamedDeBruijn) size :: Binder FakeNamedDeBruijn -> NumBits -> NumBits | |
Flat (Binder NamedDeBruijn) | |
Defined in PlutusCore.Flat encode :: Binder NamedDeBruijn -> Encoding decode :: Get (Binder NamedDeBruijn) size :: Binder NamedDeBruijn -> NumBits -> NumBits |
defaultVersion :: ann -> Version ann Source #
The default version of Plutus Core supported by this library.
Helper functions
mapFun :: (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.
tyVarDeclAnn :: forall tyname ann. Lens' (TyVarDecl tyname ann) ann Source #
tyVarDeclName :: forall tyname ann tyname. Lens (TyVarDecl tyname ann) (TyVarDecl tyname ann) tyname tyname Source #
varDeclAnn :: forall tyname name uni k (fun :: k) ann k (fun :: k). Lens (VarDecl tyname name uni (fun :: k) ann) (VarDecl tyname name uni (fun :: k) ann) ann ann Source #
varDeclName :: forall tyname name uni k (fun :: k) ann name k (fun :: k). Lens (VarDecl tyname name uni (fun :: k) ann) (VarDecl tyname name uni (fun :: k) ann) name name Source #
varDeclType :: forall tyname name uni k (fun :: k) ann tyname uni k (fun :: k). Lens (VarDecl tyname name uni (fun :: k) ann) (VarDecl tyname name uni (fun :: k) ann) (Type tyname uni ann) (Type tyname uni ann) Source #
tyDeclType :: forall tyname uni ann tyname uni. Lens (TyDecl tyname uni ann) (TyDecl tyname uni ann) (Type tyname uni ann) (Type tyname uni ann) Source #
progVer :: forall tyname name uni fun ann. Lens' (Program tyname name uni fun ann) (Version ann) Source #
progTerm :: forall tyname name uni fun ann tyname name uni fun. Lens (Program tyname name uni fun ann) (Program tyname name uni fun ann) (Term tyname name uni fun ann) (Term tyname name uni fun ann) Source #
kindSubkinds :: Traversal' (Kind ann) (Kind ann) Source #
kindSubkindsDeep :: Fold (Kind ann) (Kind ann) Source #
tyVarDeclSubkinds :: Traversal' (TyVarDecl tyname a) (Kind a) Source #
typeTyBinds :: Traversal' (Type tyname uni ann) tyname Source #
Get all the direct child 'tyname a's of the given Type
from binders.
typeTyVars :: Traversal' (Type tyname uni ann) tyname Source #
typeUniques :: HasUniques (Type tyname uni ann) => Traversal' (Type tyname uni ann) Unique Source #
typeSubkinds :: Traversal' (Type tyname uni ann) (Kind ann) Source #
typeSubtypes :: Traversal' (Type tyname uni ann) (Type tyname uni ann) Source #
typeSubtypesDeep :: Fold (Type tyname uni ann) (Type tyname uni ann) Source #
varDeclSubtypes :: Traversal' (VarDecl tyname name uni fun a) (Type tyname uni a) Source #
termTyBinds :: Traversal' (Term tyname name uni fun ann) tyname Source #
termUniques :: HasUniques (Term tyname name uni fun ann) => Traversal' (Term tyname name uni fun ann) Unique Source #
termSubkinds :: Traversal' (Term tyname name uni fun ann) (Kind ann) Source #
termSubtypes :: Traversal' (Term tyname name uni fun ann) (Type tyname uni ann) Source #
termSubtypesDeep :: Fold (Term tyname name uni fun ann) (Type tyname uni ann) Source #
termSubterms :: Traversal' (Term tyname name uni fun ann) (Term tyname name uni fun ann) Source #
termSubtermsDeep :: Fold (Term tyname name uni fun ann) (Term tyname name uni fun ann) Source #
typeUniquesDeep :: HasUniques (Type tyname uni ann) => Fold (Type tyname uni ann) Unique Source #
termUniquesDeep :: HasUniques (Term tyname name uni fun ann) => Fold (Term tyname name uni fun ann) Unique Source #
Base functors
data TermF (tyname :: Type) (name :: Type) (uni :: Type -> Type) (fun :: Type) (ann :: Type) r Source #
VarF ann name | |
TyAbsF ann tyname (Kind ann) r | |
LamAbsF ann name (Type tyname uni ann) r | |
ApplyF ann r r | |
ConstantF ann (Some (ValueOf uni)) | |
BuiltinF ann fun | |
TyInstF ann r (Type tyname uni ann) | |
UnwrapF ann r | |
IWrapF ann (Type tyname uni ann) (Type tyname uni ann) r | |
ErrorF ann (Type tyname uni ann) |
Instances
Functor (TermF tyname name uni fun ann) Source # | |
Foldable (TermF tyname name uni fun ann) Source # | |
Defined in PlutusCore.Core.Instance.Recursive fold :: Monoid m => TermF tyname name uni fun ann m -> m Source # foldMap :: Monoid m => (a -> m) -> TermF tyname name uni fun ann a -> m Source # foldMap' :: Monoid m => (a -> m) -> TermF tyname name uni fun ann a -> m Source # foldr :: (a -> b -> b) -> b -> TermF tyname name uni fun ann a -> b Source # foldr' :: (a -> b -> b) -> b -> TermF tyname name uni fun ann a -> b Source # foldl :: (b -> a -> b) -> b -> TermF tyname name uni fun ann a -> b Source # foldl' :: (b -> a -> b) -> b -> TermF tyname name uni fun ann a -> b Source # foldr1 :: (a -> a -> a) -> TermF tyname name uni fun ann a -> a Source # foldl1 :: (a -> a -> a) -> TermF tyname name uni fun ann a -> a Source # toList :: TermF tyname name uni fun ann a -> [a] Source # null :: TermF tyname name uni fun ann a -> Bool Source # length :: TermF tyname name uni fun ann a -> Int Source # elem :: Eq a => a -> TermF tyname name uni fun ann a -> Bool Source # maximum :: Ord a => TermF tyname name uni fun ann a -> a Source # minimum :: Ord a => TermF tyname name uni fun ann a -> a Source # sum :: Num a => TermF tyname name uni fun ann a -> a Source # product :: Num a => TermF tyname name uni fun ann a -> a Source # | |
Traversable (TermF tyname name uni fun ann) Source # | |
Defined in PlutusCore.Core.Instance.Recursive traverse :: Applicative f => (a -> f b) -> TermF tyname name uni fun ann a -> f (TermF tyname name uni fun ann b) Source # sequenceA :: Applicative f => TermF tyname name uni fun ann (f a) -> f (TermF tyname name uni fun ann a) Source # mapM :: Monad m => (a -> m b) -> TermF tyname name uni fun ann a -> m (TermF tyname name uni fun ann b) Source # sequence :: Monad m => TermF tyname name uni fun ann (m a) -> m (TermF tyname name uni fun ann a) Source # |
data TypeF (tyname :: Type) (uni :: Type -> Type) (ann :: Type) r Source #
TyVarF ann tyname | |
TyFunF ann r r | |
TyIFixF ann r r | |
TyForallF ann tyname (Kind ann) r | |
TyBuiltinF ann (SomeTypeIn uni) | |
TyLamF ann tyname (Kind ann) r | |
TyAppF ann r r |
Instances
Functor (TypeF tyname uni ann) Source # | |
Foldable (TypeF tyname uni ann) Source # | |
Defined in PlutusCore.Core.Instance.Recursive fold :: Monoid m => TypeF tyname uni ann m -> m Source # foldMap :: Monoid m => (a -> m) -> TypeF tyname uni ann a -> m Source # foldMap' :: Monoid m => (a -> m) -> TypeF tyname uni ann a -> m Source # foldr :: (a -> b -> b) -> b -> TypeF tyname uni ann a -> b Source # foldr' :: (a -> b -> b) -> b -> TypeF tyname uni ann a -> b Source # foldl :: (b -> a -> b) -> b -> TypeF tyname uni ann a -> b Source # foldl' :: (b -> a -> b) -> b -> TypeF tyname uni ann a -> b Source # foldr1 :: (a -> a -> a) -> TypeF tyname uni ann a -> a Source # foldl1 :: (a -> a -> a) -> TypeF tyname uni ann a -> a Source # toList :: TypeF tyname uni ann a -> [a] Source # null :: TypeF tyname uni ann a -> Bool Source # length :: TypeF tyname uni ann a -> Int Source # elem :: Eq a => a -> TypeF tyname uni ann a -> Bool Source # maximum :: Ord a => TypeF tyname uni ann a -> a Source # minimum :: Ord a => TypeF tyname uni ann a -> a Source # | |
Traversable (TypeF tyname uni ann) Source # | |
Defined in PlutusCore.Core.Instance.Recursive traverse :: Applicative f => (a -> f b) -> TypeF tyname uni ann a -> f (TypeF tyname uni ann b) Source # sequenceA :: Applicative f => TypeF tyname uni ann (f a) -> f (TypeF tyname uni ann a) Source # mapM :: Monad m => (a -> m b) -> TypeF tyname uni ann a -> m (TypeF tyname uni ann b) Source # sequence :: Monad m => TypeF tyname uni ann (m a) -> m (TypeF tyname uni ann a) Source # |
data KindF (ann :: Type) r Source #
TypeF ann | |
KindArrowF ann r r |
Instances
Functor (KindF ann) Source # | |
Foldable (KindF ann) Source # | |
Defined in PlutusCore.Core.Instance.Recursive fold :: Monoid m => KindF ann m -> m Source # foldMap :: Monoid m => (a -> m) -> KindF ann a -> m Source # foldMap' :: Monoid m => (a -> m) -> KindF ann a -> m Source # foldr :: (a -> b -> b) -> b -> KindF ann a -> b Source # foldr' :: (a -> b -> b) -> b -> KindF ann a -> b Source # foldl :: (b -> a -> b) -> b -> KindF ann a -> b Source # foldl' :: (b -> a -> b) -> b -> KindF ann a -> b Source # foldr1 :: (a -> a -> a) -> KindF ann a -> a Source # foldl1 :: (a -> a -> a) -> KindF ann a -> a Source # toList :: KindF ann a -> [a] Source # null :: KindF ann a -> Bool Source # length :: KindF ann a -> Int Source # elem :: Eq a => a -> KindF ann a -> Bool Source # maximum :: Ord a => KindF ann a -> a Source # minimum :: Ord a => KindF ann a -> a Source # | |
Traversable (KindF ann) Source # | |
Defined in PlutusCore.Core.Instance.Recursive |