Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
PlutusIR.Subst
Synopsis
- substVarA ∷ Applicative f ⇒ (name → f (Maybe (Term tyname name uni fun ann))) → Term tyname name uni fun ann → f (Term tyname name uni fun ann)
- substTyVarA ∷ Applicative f ⇒ (tyname → f (Maybe (Type tyname uni ann))) → Type tyname uni ann → f (Type tyname uni ann)
- typeSubstTyNames ∷ ∀ tyname (uni ∷ Type → Type) ann. (tyname → Maybe (Type tyname uni ann)) → Type tyname uni ann → Type tyname uni ann
- termSubstNames ∷ (name → Maybe (Term tyname name uni fun a)) → Term tyname name uni fun a → Term tyname name uni fun a
- termSubstNamesM ∷ Monad m ⇒ (name → m (Maybe (Term tyname name uni fun ann))) → Term tyname name uni fun ann → m (Term tyname name uni fun ann)
- termSubstTyNames ∷ (tyname → Maybe (Type tyname uni a)) → Term tyname name uni fun a → Term tyname name uni fun a
- termSubstTyNamesM ∷ Monad m ⇒ (tyname → m (Maybe (Type tyname uni ann))) → Term tyname name uni fun ann → m (Term tyname name uni fun ann)
- bindingSubstNames ∷ (name → Maybe (Term tyname name uni fun a)) → Binding tyname name uni fun a → Binding tyname name uni fun a
- bindingSubstTyNames ∷ (tyname → Maybe (Type tyname uni a)) → Binding tyname name uni fun a → Binding tyname name uni fun a
- fvTerm ∷ HasUnique name TermUnique ⇒ Traversal' (Term tyname name uni fun ann) name
- ftvTerm ∷ HasUnique tyname TypeUnique ⇒ Traversal' (Term tyname name uni fun ann) tyname
- fvBinding ∷ HasUnique name TermUnique ⇒ Traversal' (Binding tyname name uni fun ann) name
- ftvBinding ∷ HasUnique tyname TypeUnique ⇒ Recursivity → Traversal' (Binding tyname name uni fun ann) tyname
- ftvTy ∷ ∀ tyname unique (uni ∷ Type → Type) ann. HasUnique tyname unique ⇒ Traversal' (Type tyname uni ann) tyname
- vTerm ∷ Fold (Term tyname name uni fun ann) name
- tvTerm ∷ Fold (Term tyname name uni fun ann) tyname
- tvTy ∷ ∀ tyname (uni ∷ Type → Type) ann f. (Contravariant f, Applicative f) ⇒ (tyname → f tyname) → Type tyname uni ann → f (Type tyname uni ann)
- substConstantA ∷ Applicative f ⇒ (ann → Some (ValueOf uni) → f (Maybe (Term tyname name uni fun ann))) → Term tyname name uni fun ann → f (Term tyname name uni fun ann)
- substConstant ∷ (ann → Some (ValueOf uni) → Maybe (Term tyname name uni fun ann)) → Term tyname name uni fun ann → Term tyname name uni fun ann
- termSubstConstantsM ∷ Monad m ⇒ (ann → Some (ValueOf uni) → m (Maybe (Term tyname name uni fun ann))) → Term tyname name uni fun ann → m (Term tyname name uni fun ann)
- termSubstConstants ∷ (ann → Some (ValueOf uni) → Maybe (Term tyname name uni fun ann)) → Term tyname name uni fun ann → Term tyname name uni fun ann
Documentation
substVarA ∷ Applicative f ⇒ (name → f (Maybe (Term tyname name uni fun ann))) → Term tyname name uni fun ann → f (Term tyname name uni fun ann) Source #
Applicatively replace a variable using the given function.
substTyVarA ∷ Applicative f ⇒ (tyname → f (Maybe (Type tyname uni ann))) → Type tyname uni ann → f (Type tyname uni ann) Source #
Applicatively replace a type variable using the given function.
typeSubstTyNames ∷ ∀ tyname (uni ∷ Type → Type) ann. (tyname → Maybe (Type tyname uni ann)) → Type tyname uni ann → Type tyname uni ann Source #
Naively substitute type names (i.e. do not substitute binders).
termSubstNames ∷ (name → Maybe (Term tyname name uni fun a)) → Term tyname name uni fun a → Term tyname name uni fun a Source #
Naively substitute names using the given functions (i.e. do not substitute binders).
termSubstNamesM ∷ Monad m ⇒ (name → m (Maybe (Term tyname name uni fun ann))) → Term tyname name uni fun ann → m (Term tyname name uni fun ann) Source #
Naively monadically substitute names using the given function (i.e. do not substitute binders).
termSubstTyNames ∷ (tyname → Maybe (Type tyname uni a)) → Term tyname name uni fun a → Term tyname name uni fun a Source #
Naively substitute type names using the given functions (i.e. do not substitute binders).
termSubstTyNamesM ∷ Monad m ⇒ (tyname → m (Maybe (Type tyname uni ann))) → Term tyname name uni fun ann → m (Term tyname name uni fun ann) Source #
Naively monadically substitute type names using the given function (i.e. do not substitute binders).
bindingSubstNames ∷ (name → Maybe (Term tyname name uni fun a)) → Binding tyname name uni fun a → Binding tyname name uni fun a Source #
Naively substitute names using the given functions (i.e. do not substitute binders).
bindingSubstTyNames ∷ (tyname → Maybe (Type tyname uni a)) → Binding tyname name uni fun a → Binding tyname name uni fun a Source #
Naively substitute type names using the given functions (i.e. do not substitute binders).
fvTerm ∷ HasUnique name TermUnique ⇒ Traversal' (Term tyname name uni fun ann) name Source #
Get all the free term variables in a PIR term.
ftvTerm ∷ HasUnique tyname TypeUnique ⇒ Traversal' (Term tyname name uni fun ann) tyname Source #
Get all the free type variables in a PIR term.
fvBinding ∷ HasUnique name TermUnique ⇒ Traversal' (Binding tyname name uni fun ann) name Source #
Get all the free variables in a PIR single let-binding.
ftvBinding ∷ HasUnique tyname TypeUnique ⇒ Recursivity → Traversal' (Binding tyname name uni fun ann) tyname Source #
Get all the free type variables in a PIR single let-binding.
ftvTy ∷ ∀ tyname unique (uni ∷ Type → Type) ann. HasUnique tyname unique ⇒ Traversal' (Type tyname uni ann) tyname Source #
Get all the free type variables in a type.
tvTy ∷ ∀ tyname (uni ∷ Type → Type) ann f. (Contravariant f, Applicative f) ⇒ (tyname → f tyname) → Type tyname uni ann → f (Type tyname uni ann) Source #
Get all the type variables in a type.
substConstantA ∷ Applicative f ⇒ (ann → Some (ValueOf uni) → f (Maybe (Term tyname name uni fun ann))) → Term tyname name uni fun ann → f (Term tyname name uni fun ann) Source #
Applicatively replace a constant using the given function.
substConstant ∷ (ann → Some (ValueOf uni) → Maybe (Term tyname name uni fun ann)) → Term tyname name uni fun ann → Term tyname name uni fun ann Source #
Replace a constant using the given function.