type-divergence-in-golang