Can't we make this simpler by just putting the new attributes and functions at the top with `#line 0` afterward?