#pragma once #include "common.hpp" #include "funcs.hpp" #include "../level-1/common.hpp" #include namespace intellect { namespace level2 { template struct baseref : public level1::baseref { using level1::template baseref::baseref; // thread-local context static ref context() { return level2::context(); } template ref operator()(Refs... args) { return level2::dohabit(self, {args.ptr()...}); } }; } }