#pragma once namespace cl { template class curry { a param; fn call; public: curry(a p, fn func) : param{p} , call{func} {} template auto operator()(b ...Args){ return call(param, Args...); } }; }