diff --git a/include/mim/world.h b/include/mim/world.h index 442ac3391e..c483903044 100644 --- a/include/mim/world.h +++ b/include/mim/world.h @@ -502,8 +502,6 @@ class World { // clang-format off template const Def* call(Id id, Args&&... args) { return call_(annex(id), std::forward(args)...); } template const Def* call( Args&&... args) { return call_(annex(), std::forward(args)...); } - template const Def* call_(Ref callee, T arg, Args&&... args) { return call_(implicit_app(callee, arg), std::forward(args)...); } - template const Def* call_(Ref callee, T arg) { return implicit_app(callee, arg); } // clang-format on ///@} @@ -539,6 +537,15 @@ class World { ///@} private: + /// @name call_ + /// Helpers to unwind World::call with variadic templates. + ///@{ + template const Def* call_(Ref callee, T arg, Args&&... args) { + return call_(implicit_app(callee, arg), std::forward(args)...); + } + template const Def* call_(Ref callee, T arg) { return implicit_app(callee, arg); } + ///@} + /// @name Put into Sea of Nodes ///@{ template const T* unify(size_t num_ops, Args&&... args) {