pseudo generics support for golang