@IgorStepanov Please try and keep the diff as small as possible for now, ie no visitor for `*Declaration`, no ctor mangling, no special `std::` mangling, no changes to `Target`, etc