Applicable

interface Applicable<T : Applicable<T>>

Inheritors

Functions

Link copied to clipboard
abstract fun apply(substitution: Substitution): T

Applies a Substitution to the current object, producing a new instance of T which differs from the current object because variables are replaced by their values, according to the binding carried by substitution.

open fun apply(substitution: Substitution, vararg substitutions: Substitution): T

Applies one or more Substitutions to the current object, producing a new instance of T which differs from the current one because variables are replaced by their values, according to the binding carried by the provided substitutions.

Link copied to clipboard
abstract fun freshCopy(): T

Returns a fresh copy of this object, that is, an instance of T which is equal to the current one in any aspect, except for variables directly or indirectly contained into this object, which are refreshed. This means the method could return this object itself, if no variable is present, or a new object with freshly generated variables.

abstract fun freshCopy(scope: Scope): T

Returns a fresh copy of this object, similarly to freshCopy(), possibly reusing variables from the provided scope, if any

Link copied to clipboard
open operator fun get(substitution: Substitution, vararg substitutions: Substitution): T

This is an alias for apply aimed at supporting a square-brackets syntax for substitutions applications in Kotlin programs. It lets programmers write object[substitution] instead of object.apply(substitution). It applies one or more Substitutions to the current object, producing a new Term which differs from the current one because variables are replaced by their values, according to the binding carried by the provided substitutions.