An example of transferring the C ++ class hierarchy to Golang. Is it done correctly?
This:
g := new(AbstractGenerator)
g.implementation = i
return g

Can be more simply written as:
return &amp;AbstractGenerator{implementation: i}