@forceinline would solve all of it.
Ok, good.
It would have to be range-based and be capable of performing syntax highlighting. My D lexer is based on lexer generator code that might someday become std.lexer, so I want to keep it around to make sure that the std.lexer code is good enough.
It would be great to get to the point where it's trivial to swap them out.