When defining a struct in Go, the data portion of the struct has both internally visible and
externally visible portions (domain vs Domain).  Because you can attach a method to the
struct, the internal vs. external visibility is important.
type Thing struct {
  internal: int
  External: int
}
// ...
t = Thing {
  internal: 1
  External: 2
}
log.Printf("%v", t) // Will not output `internal`.