Be careful with Go struct embedding
Go has a feature called struct embedding that allows you to compose types. It looks something like this: type Position struct { X int Y int } type Colour struct { R byte G byte B byte } type Rectangle struct { Position Colour Width int Height int } r := Rectangle { } fmt . Printf ( "%d,%d " , r . Position . X , r . Position . Y ) fmt . Printf ( "%d,%d " , r . X , r . Y ) But what do you think this code does? type FooService struct { URL string } type BarConnectionOptions struct { URL string