Generic structures for golang