It would be quite interesting it it could be kept like this: as a separate (but Go-compatible) that can be compiled to concrete Go code behind the scenes. Not sure about the limitations about that approach though ... perhaps not everything can be generated up-front etc.