Too bad there's no good way to do generic programming in Go