Generics for Go using code generation