Is it just me or this code has become a bit too nested?
I'd personally love to see something like:

1. rename `MacroImplementations` into `FInterpolator` (there are no more implementations in there)
2. make `def expandFInterpolator` an entry point without arguments
3. Move parsing of the macro prefix from FastTrack to top-level of the FInterpolator class

This way you can flatten most of current `def macro_StringInterpolation_f` into the `FInterpolator` class and `expandFInterpolator` will be a clean entry point to that with minimal high-level code.  This scheme is very similar to what I have in quasiquotes and I think it's a win-win.