This is a prototype for some improvements to Syringe that address some of its shortcomings by improving frontend support. It still requires templates to be instantiated manually, but otherwise works fairly well. There are some assertion errors that still need to be ironed out through appropriate bitcasts. Modification to adopt the direct call approach may relieve some of that trouble, and allow this design to work as intended.
The last major pain point is that, ideally a payload for a template function or dependent class will be instantiated automatically by the frontend. However, even though the template gets instantiated, it never reaches codegen. Some work needs to be done to identify a good way to force this instantiation.