* want reflection to work without requiring std::type_info, so that in xo-expression we can create function types that C++ compiler has never encountered. ** This means we need the ability to construct the canonical name for a type without c++ compiler's assistance. ** need lookup using function ingredients (return types + arg types + noexcept) to intern lambda types