I understood Visitor Pattern in C++ and curiously recurring template pattern (CRTP) individually. But I am having a trouble trying to understand how to use clang::TypeVisito