mkApp

open fun <T : KSort> mkApp(decl: KDecl<T>, args: List<KExpr<*>>): KApp<T, *>

Create function app expression.

For builtin declarations e.g. KAndDecl, mkApp must return the same object as a corresponding builder. For example, mkApp(KAndDecl, a, b) and mkAnd(a, b) must end up with the same KAndExpr object. To achieve such behaviour we override apply for all builtin declarations.