mk App
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.