I agree with Kenji here in that this approach seems to be much more error-prone. But then, I usually only work on the `semantic` part for the occasional bug fix, so I'm really not the one to complain.